Commit [b88467] Maximize Restore History

In MAKE-THREAD, use WITH-SYSTEM-MUTEX for locking *MAKE-THREAD-LOCK*

Otherwise MAKE-THREAD could be interrupted after having
locked *MAKE-THREAD-LOCK*. If the interrupting code also called
MAKE-THREAD, a recursive lock attempt for *MAKE-THREAD-LOCK* would
occur.

The problem could be easily triggered by

(MAKE-TIMER ... :THREAD <T or a thread>)

Also move let bindings of SETUP-SEM, REAL-FUNCTION, ARGUMENTS and
INITIAL-FUNCTION and the NOT *GC-INHIBIT* assertion out of the
critical section.

Tests have been added in threads.pure.lisp and timer.impure.lisp.

fixes lp#1180102.

Jan Moringen Jan Moringen 2013-06-23

Paul Khuong Paul Khuong 2013-06-28

changed src/code/target-thread.lisp
changed tests/threads.pure.lisp
changed tests/timer.impure.lisp
src/code/target-thread.lisp Diff Switch to side-by-side view
Loading...
tests/threads.pure.lisp Diff Switch to side-by-side view
Loading...
tests/timer.impure.lisp Diff Switch to side-by-side view
Loading...