#845 closed defect (fixed)
gui::background-process-run-function and zombie windows
Reported by: | svspire | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | IDE | Version: | trunk |
Keywords: | Cc: |
Description
(gui::background-process-run-function 'foo1 (lambda () (print "I'm dead")))
(gui::background-process-run-function 'foo2 (lambda () (loop (sleep 1))))
Executing the above two forms causes the expected results: a second Listener that says "I'm dead".
However, if you close that Listener window, the window comes back when you hit cmd-L (even though its process is dead). Windows attached to dead Listener processes should be deleted completely once closed.
Change History (2)
comment:1 Changed 10 years ago by svspire
- Resolution set to fixed
- Status changed from new to closed
comment:2 Changed 10 years ago by gb
(In [14904]) Try to fix ticket:845 a different way. ACTIVE-LISTENER-WINDOWS returns an ordered list of all listener windows that are visible and have processes associated with them. #/showListener uses ACTIVE-LISTENER-WINDOWS to find/activate an active listener window. #/windowShouldClose: on listener windows returns T unless there's a background process associated with the window, in which case it hides the window and returns NIL. (This is similar to the pre-14811 behavior, but gets the test right.) Define #/topListener in terms of ACTIVE-LISTENER-WINDOWS. Define the function GUI::TOP-LISTENER-DOCUMENT as a wrapper around #/topListener and call it (rather than the ObjC method) from Hemlock.
(In [14811]) Kill dead listener windows truly dead. Make #'background-process-run-function more compatible with #'process-run-function (again). Fixes ticket:845