Changeset 463
- Timestamp:
- Feb 2, 2004, 8:11:09 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-readloop.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-readloop.lisp
r361 r463 155 155 (if res (return-from find-restart-2 restart)(setq res restart)))))) 156 156 |# 157 158 (defglobal *quit-acknowledge* nil) 159 (defglobal *quit-acknowledge-lock* (make-lock)) 160 157 161 (defun quit (&optional (exit-status 0)) 158 162 (let* ((ip *initial-process*) … … 165 169 (#_exit exit-status))))) 166 170 (unless (eq cp ip) 171 (when (try-lock *quit-acknowledge-lock*) 172 (let-globally ((*quit-acknowledge* (make-semaphore))) 173 (timed-wait-on-semaphore *quit-acknowledge* 1))) 167 174 (process-kill cp))))) 168 175 … … 176 183 177 184 (defun prepare-to-quit (&optional part) 185 (when *quit-acknowledge* (signal-semaphore *quit-acknowledge*)) 178 186 (let-globally ((*quitting* t)) 179 180 187 (when (or (null part) (eql 0 part)) 181 188 (dolist (f *lisp-cleanup-functions*)
Note:
See TracChangeset
for help on using the changeset viewer.
