Changeset 465
- Timestamp:
- Feb 2, 2004, 8:12:54 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-lisp-threads.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-lisp-threads.lisp
r422 r465 1197 1197 (let ((new-cell (list (cons object function))) 1198 1198 (population *termination-population*)) 1199 (with-lock-grabbed (*termination-population-lock*) 1200 (setf (cdr new-cell) (population-data population) 1201 (population-data population) new-cell)) 1199 (without-interrupts 1200 (with-lock-grabbed (*termination-population-lock*) 1201 (setf (cdr new-cell) (population-data population) 1202 (population-data population) new-cell))) 1202 1203 function)) 1203 1204 … … 1209 1210 (population *termination-population*)) 1210 1211 (loop 1212 (without-interrupts 1211 1213 (with-lock-grabbed (*termination-population-lock*) 1212 1214 (let ((list (population-termination-list population))) 1213 1215 (unless list (return)) 1214 1216 (setf cell (car list) 1215 (population-termination-list population) (cdr list)))) 1217 (population-termination-list population) (cdr list))))) 1216 1218 (funcall (cdr cell) (car cell))))) 1217 1219 … … 1224 1226 (setq found-it? t)))) 1225 1227 (declare (dynamic-extent #'test)) 1226 (with-lock-grabbed (*termination-population-lock*) 1227 (setf (population-data *termination-population*) 1228 (delete object (population-data *termination-population*) 1229 :test #'test 1230 :count 1))) 1228 (without-interrupts 1229 (with-lock-grabbed (*termination-population-lock*) 1230 (setf (population-data *termination-population*) 1231 (delete object (population-data *termination-population*) 1232 :test #'test 1233 :count 1)))) 1231 1234 found-it?))) 1232 1235 1233 1236 (defun termination-function (object) 1234 (with-lock-grabbed (*termination-population-lock*) 1235 (cdr (assq object (population-data *termination-population*))))) 1237 (without-interrupts 1238 (with-lock-grabbed (*termination-population-lock*) 1239 (cdr (assq object (population-data *termination-population*)))))) 1236 1240 1237 1241 (defun do-automatic-termination ()
Note:
See TracChangeset
for help on using the changeset viewer.
