| | 10 | As of r12416 in the trunk, CCL supports "background listener processes" in the IDE. |
| | 11 | |
| | 12 | {{{ |
| | 13 | (gui:background-process-run-function name thunk) |
| | 14 | }}} |
| | 15 | |
| | 16 | executes the 0-argument function THUNK in a lisp process named NAME with the standard stream variables effectively bound to a stream which references a listener window (with associated Hemlock buffer and infrastructure.) The window is invisible (it's actually created on demand) unless/until an I/O operation is performed on this stream. |
| | 17 | |
| | 18 | When the process is runing, the window's close button (and CMD-W/the Close menu item) hides the window but doesn't deallocate its resources or kill the process; subsequent I/O operations to the stream cause the window to become visible again. |
| | 19 | |
| | 20 | If a background listener window is visible when the associated process exits, it stays visible (so that its contents can be saved - via "Save To ..." - or otherwise manipulated.) |
| | 21 | |
| | 22 | |
| | 23 | When the window is visible and the process is in a break loop, they behave like other listener windows/processes: the backtrace and restarts dialogs can be used, and the listener window/process can be used to evaluate selections from editor windows when the listener window is the frontmost listener window. |