#3334: deadlock in _once() ----------------------------+--------------------- Reporter: Stavros Passas | Owner: (none) Type: defect | Status: new Priority: normal | Milestone: 4.11.4 Component: posix | Version: 4.11 Severity: normal | Resolution: Keywords: | Blocked By: Blocking: | ----------------------------+---------------------
Comment (by Stavros Passas): I agree with Sebastian, that using one dedicated mutex for each pthread_once_t instance would be a longer term and elegant solution, but it would also add overhead for each pthread_t instance. I am adding a different proposed solution, which doesn't require newlib changes (and increasing the pthread_t size): The _once implementation uses a single mutex. Currently this mutex protects the whole function, while I believe we need to protect reads/writes to the once_state variable only. Concurrent tasks finding the state on RUNNING, could just yield until the state becomes ONCE_STATE_COMPLETE. -- Ticket URL: <http://devel.rtems.org/ticket/3334#comment:2> RTEMS Project <http://www.rtems.org/> RTEMS Project
_______________________________________________ bugs mailing list bugs@rtems.org http://lists.rtems.org/mailman/listinfo/bugs