Changeset 422
- Timestamp:
- Jan 30, 2004, 11:34:52 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-lisp-threads.lisp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-lisp-threads.lisp
r252 r422 1189 1189 (%cons-terminatable-alist)) 1190 1190 1191 (defvar *termination-population-lock* (make-lock)) 1192 1191 1193 1192 1194 (defvar *enable-automatic-termination* t) … … 1195 1197 (let ((new-cell (list (cons object function))) 1196 1198 (population *termination-population*)) 1197 (with out-interrupts1199 (with-lock-grabbed (*termination-population-lock*) 1198 1200 (setf (cdr new-cell) (population-data population) 1199 1201 (population-data population) new-cell)) … … 1207 1209 (population *termination-population*)) 1208 1210 (loop 1209 (with out-interrupts1211 (with-lock-grabbed (*termination-population-lock*) 1210 1212 (let ((list (population-termination-list population))) 1211 1213 (unless list (return)) … … 1222 1224 (setq found-it? t)))) 1223 1225 (declare (dynamic-extent #'test)) 1224 (with out-interrupts1226 (with-lock-grabbed (*termination-population-lock*) 1225 1227 (setf (population-data *termination-population*) 1226 1228 (delete object (population-data *termination-population*) … … 1230 1232 1231 1233 (defun termination-function (object) 1232 (cdr (assq object (population-data *termination-population*)))) 1234 (with-lock-grabbed (*termination-population-lock*) 1235 (cdr (assq object (population-data *termination-population*))))) 1233 1236 1234 1237 (defun do-automatic-termination ()
Note:
See TracChangeset
for help on using the changeset viewer.
