Boost logo

Boost Users :

From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2006-05-18 09:36:21


Setzer, Sebastian (ext) wrote:
> Hi,
> If you connect (disconnect) a new slot to a signal inside of a slot of
> the same signal, what happens?
> - are the slots called which where connected before the signal was
> called,
> - or is new slot be called this time, too,
> - or is the behaviour undefined?
>
> I didn't find anything on this subject in the manuals. Even if the
> behaviour is undefined, that should be mentioned.

Doesn't the following answer the questions:

http://www.boost.org/doc/html/signals/tutorial.html#id2732772

When can disconnections occur? (Intermediate)
---------------------------------------------
...

These events can occur at any time without disrupting a signal's calling
sequence. If a signal/slot connection is disconnected at any time during a
signal's calling sequence, the calling sequence will still continue but will
not invoke the disconnected slot. Additionally, a signal may be destroyed
while it is in a calling sequence, and which case it will complete its slot
call sequence but may not be accessed directly.

Signals may be invoked recursively (e.g., a signal A calls a slot B that
invokes signal A...). The disconnection behavior does not change in the
recursive case, except that the slot calling sequence includes slot calls
for all nested invocations of the signal.

Jeff Flinn


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net