zkat / chanl

Portable channel-based concurrency for Common Lisp
Other
169 stars 18 forks source link

[WIP] Evade and Eliminate Deadlocks #32

Open adlai opened 2 weeks ago

adlai commented 2 weeks ago

Currently, only the CONTINUE restart is added; however, this should prove closer to ideal behavior than its absence, which forces the user to lose a worker thread.

Invoking the CONTINUE restart should evade the deadlock by releasing both locks and requeuing.

adlai commented 2 weeks ago

The current code doesn't have the CONTINUE restart, and simply evades the deadlock and reports this to *DEBUG-IO*.

adlai commented 1 week ago

When multiple deadlocks occur in close succession, the handler-case does not properly recover the thread pool.

adlai commented 15 hours ago

The SB-THREAD:THREAD-DEADLOCK is still not triggered by deadlock.lisp, although at least someone has begun targeting that failure.