Ticket #803 (new fixme)
Opened 12 months ago
test deadlock: test-threadpool sync-joinable
| Reported by: | ichthyo | Owned by: | ct |
|---|---|---|---|
| Priority: | normal | Milestone: | 0integration |
| Component: | lumieraBack | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: |
Description
The sync-joinable test runs into a deadlock.
The situation is as follows:
- the main thread (running the test function) blocks waiting on the join()
- the 'master' thread blocks waiting on (test-threadpool, 99)
lumiera_thread_sync_other (worker); // wait until the arguments are sent
- but the worker thread doesn't even start the thread function; it blocks in threads.c, 95
static void* thread_loop (void* thread) { ... ... LUMIERA_CONDITION_SECTION (cond_sync, &t->signal) { t->rh = &lumiera_lock_section_.rh; do { lumiera_threadpool_release_thread(t); LUMIERA_CONDITION_WAIT (t->state != LUMIERA_THREADSTATE_IDLE); >>>^^^^^Waiting here ... // NULL function means: no work to do INFO (threads, "function %p", t->function); if (t->function) t->function (t->arguments);
Note: See
TracTickets for help on using
tickets.
