Ticket #1042 (closed defect: fixed)

Opened 20 months ago

Last modified 20 months ago

Initial thread can spontaneously die (or be removed from ccl:all-processes)

Reported by: jlawrence Owned by:
Priority: normal Milestone:
Component: Runtime (threads, GC) Version: trunk
Keywords: Cc:

Description

(defun test (thread-count)
  (let ((threads (loop repeat thread-count
                       collect (ccl:process-run-function
                                "test" (lambda ())))))
    ;;(sleep 0.01)
    (mapc #'ccl:process-kill threads)))

(defun run ()
  (loop
     (assert (find "Initial" (ccl:all-processes)
                   :key #'ccl:process-name
                   :test #'string=))
     (test 10)
     (format t ".")))

The assertion fails within 100 iterations on dx86cl64, dx86cl, and lx86cl. With the SLEEP call I did not see a failure for 20k iterations.

Change History

comment:1 Changed 20 months ago by gb

  • Status changed from new to closed
  • Resolution set to fixed

(In [15557]) Don't allow a thread to take interrupts before/after *CURRENT-PROCESS* is established. Fixes ticket:1042 in the trunk.

Note: See TracTickets for help on using tickets.