If t
, then after the application has opened at least one CAPI window, whenever the application is waiting for input, a routine is run to check whether any of its CAPI windows are still open. If there are no open windows, the application exits.
On Microsoft Windows, if the application is an automation server, the checking routine also checks the server. If the application uses com:automation-server-top-loop
(maybe indirectly via com:automation-server-main
), the checking routine does not cause exit until com:automation-server-top-loop
exits. Otherwise the checking routine does not cause exit as long as the server is used. After the server is not used, the exit is further delayed by the exit-delay (default 5 second, see documentation for com:automation-server-exit-delay
).
The function set-quit-when-no-windows
can be used to turn checking on and off dynamically at run time regardless of the value of the :quit-when-no-windows
keyword.
Note: a multiprocessing LispWorks executable will stop multiprocessing when there is no process other than the Idle Process. So if your application simply displays a window, which is closed, then multiprocessing will stop. This is independent of quit-when-no-windows.
LispWorks Delivery User Guide - 10 Aug 2017