Hi Waldek,
Thanks for your very rapid response.
[AS]
> > ...
> > It may be as simple as replacing calls of 'destroy' with calls of 'delete'
> > throughout the motif extension to poplog?
[WH]
> No. While the 'destroy' versus 'delete' is likely to be crucial, the
> actual mechanizm works differently. I have run Popolog under
> debugger tracing interaction between Poplog and Motif. From the
> point of clicking on 'delete' button to killing Poplog _all_ happens
> in Motif code. For me, most likely problem place is code that
> created window. Namely, normaly various possible behaviours
> are chosen at window creation time.
If you are right then perhaps there's some portion of the code for creating
XVed windows in 54-bit poplog, which *can* be killed using a mouse-click,
that could be compared with the code for creating Xgraphic windows that
*cannot* be killed using the mouse, without killing the whole process.
Perhaps someone with relevant expertise, interest and spare time(!) could
find out how the delete (kill) events are handled in the 32 bit poplog
Xgraphic sources and try transferring the relevant bits, suitably modified,
to the 64 bit version.
I would be willing to test proposed fixes.
If required for comparisons, the latest 32-bit basepop11, and additional
libraries, are available from here
http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog
The basepop11 can be run, but can't be rebuilt.
All the 32 bit Poplog code for linking in X11, and 32bit motif, on top of
basepop11, still works. I've just checked on a PC running Fedora 29,
including compiling the poplog_ui, which uses motif, running various demos
and deleting graphical windows (e.g. rc_control_panel window) without
killing poplog.
However, I am aware that you did an enormous amount of rationalization of
the system code for 64 bit poplog, which may make it difficult to find
corresponding portions of 32 bit and 64 bit code, e.g. for interrupt
handling in graphical windows.
Your comments suggest that the main relevant difference between old and new
code is in the creation of graphical windows and setting up interrupt
handling.
----
It may be more useful to compare creation of Xved windows and Xgraphic
windows in 64 bit poplog than to compare the 64 bit and 32 bit versions,
since the Xved windows already handle interrupts correctly whereas Xgraphic
windows fail.
> Unfortunaly, window creation seem to be spread out over rather large area
> of code...
I wonder whether merely searching for occurrences of 'destroy' and 'delete'
in the two contexts will show why a running poplog V16 survives killing an
Xved window but not an Xgraphic windows?
Your comment suggests that that could be a lengthy task.
But perhaps someone on the list will be motivated and have time...
I'll be happy to provide very short sequences of pop11 followed by a
mouse-click that crash V16 but not V15.65:
Aaron