Opened 8 years ago
Closed 8 years ago
#10721 closed Bugs (fixed)
boost::signals2 deadlock with pthread
| Reported by: | Owned by: | Frank Mori Hess | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | signals2 |
| Version: | Boost 1.56.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Hi,
boost::signals2 releases the tracked pointers while holding the lock of the following connection_body; if a destructor of a tracked object tries to use this connection (for example through signal::empty() or connection::connected()) it enters a recursive lock on windows (works fine) and deadlocks with pthread.
regards, Stefan
Attachments (2)
Change History (4)
by , 8 years ago
| Attachment: | deadlock-boost-signals2.cpp added |
|---|
by , 8 years ago
| Attachment: | slot_call_iterator.hpp.patch added |
|---|
comment:1 by , 8 years ago
| Component: | None → signals2 |
|---|---|
| Owner: | set to |
Note:
See TracTickets
for help on using tickets.

The attached patch fixes the issue - I think it should be safe to release the tracked pointers outside the lock.