Ticket #845 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

gui::background-process-run-function and zombie windows

Reported by: svspire Owned by:
Priority: normal Milestone:
Component: IDE Version: trunk
Keywords: Cc:


(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

comment:1 Changed 3 years ago by svspire

  • Status changed from new to closed
  • Resolution set to fixed

(In [14811]) Kill dead listener windows truly dead. Make #'background-process-run-function more compatible with #'process-run-function (again). Fixes ticket:845

comment:2 Changed 3 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.

Note: See TracTickets for help on using tickets.