boost::signal and thread-safety
Hi, The signal FAQ says that currently boost::signals aren't thread-safe. I'm guessing this applies to connecting/disconnecting slots from different threads and calling a signal from multiple threadsl, right? If synchronize access when connecting slots and make sure that only a single thread calls a certain signal, can I then use boost::signal to fire events from objects that do processing in a worker thread? As a secondary question: how far in the future will this thread- safety support be added? Thanks in advance, Sven
On Friday 10 January 2003 08:39 am, "svanechel wrote:
Hi,
The signal FAQ says that currently boost::signals aren't thread-safe. I'm guessing this applies to connecting/disconnecting slots from different threads and calling a signal from multiple threadsl, right?
Right.
If synchronize access when connecting slots and make sure that only a single thread calls a certain signal, can I then use boost::signal to fire events from objects that do processing in a worker thread?
Yes. So long as you do not connect or disconnect a slot while a signal is calling slots, you'll be safe. It's also okay to invoke the same signal concurrently, so long as no connections/disconnections are made and the combiner can handle it.
As a secondary question: how far in the future will this thread- safety support be added?
Thanks in advance,
Sven
Not very soon. I'm currently deep in development of a documentation system for Boost, and I don't have the time to sustain another (major!) effort. Doug
--- In Boost-Users@yahoogroups.com, Douglas Gregor
On Friday 10 January 2003 08:39 am, "svanechel wrote:
Hi,
The signal FAQ says that currently boost::signals aren't thread- safe. I'm guessing this applies to connecting/disconnecting slots from different threads and calling a signal from multiple threadsl, right?
Right.
If synchronize access when connecting slots and make sure that only a single thread calls a certain signal, can I then use boost::signal to fire events from objects that do processing in a worker thread?
Yes. So long as you do not connect or disconnect a slot while a signal is calling slots, you'll be safe. It's also okay to invoke the same signal concurrently, so long as no connections/disconnections are made and the combiner can handle it.
As a secondary question: how far in the future will this thread- safety support be added?
Thanks in advance,
Sven
Not very soon. I'm currently deep in development of a documentation system for Boost, and I don't have the time to sustain another (major!) effort.
Doug
No problem. From your response I've inferred that I can continue using this rather nice libary. Thanks, Sven
participants (2)
-
Douglas Gregor
-
svanechel <svanechel@yahoo.com>