Opened 8 years ago
Last modified 7 years ago
#1372 assigned defect
mailbox timeouts and thread signaling
Reported by: | Caolan McMahon | Owned by: | Kon Lovett |
---|---|---|---|
Priority: | major | Milestone: | someday |
Component: | extensions | Version: | 4.12.0 |
Keywords: | mailbox | Cc: | |
Estimated difficulty: |
Description
There appears to be a scheduler problem in the mailbox egg. If I signal a thread waiting on mailbox-receive! with a timeout, the program hangs and csi eats all my cpu.
(use srfi-18 mailbox) (define mbox (make-mailbox)) (define primordial (current-thread)) (define t (thread-start! (lambda () (thread-sleep! 1) (thread-signal! primordial 'example)))) ;; this hangs forever and eats all my cycles (with timeout) (print (mailbox-receive! mbox 4)) ;; this exits as expected with the 'example exception (no timeout) (print (mailbox-receive! mbox))
Change History (2)
comment:1 Changed 7 years ago by
Owner: | set to Kon Lovett |
---|---|
Status: | new → assigned |
comment:2 Changed 7 years ago by
The above sleeps the primodial thread. When no threads other than the primodial thread ('t' above not started) the primodial times-out. But w/ another thread to run the primodial is never timed-out; I need to look in the scheduler, sounds not right.
Suggest not doing a 'mailbox-receive!' while running as the primodial, at least for now.
Ex: 'reader-writer-test' uses a separate reader & writer threads.
Note: See
TracTickets for help on using
tickets.
I also noticed that mailbox fails to install right now...