id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8449,Provide swap() and/or move for signals,Andrey Semashev,Frank Mori Hess,"Please, provide a member swap() function (and a free swap() overload) for signals. Moving support would also be helpful. Swapping can be useful to solve deadlock problems in user's code. Consider the following example: 1. We have an object a1 of class A, which contains a signal and a mutex for protecting A's internal state. 2. We have a number of objects b1 - bN of types B1 - BN which subscribe for the signal in A. 3. The signal in a1 is a one-time notification (i.e. it and the a1 object itself will be destroyed soon after the notification). When it is invoked, the mutex has to be locked to protect the signal from being modified. 4. The b1 - bN objects may need to call back methods of a1 while being notified. These methods may need to lock the mutex in a1 but this would lead to a deadlock. A typical solution for this problem is to move the signal to stack while holding the mutex, then release the mutex and invoke the signal. But this is not possible because signals do not allow swapping or moving. ",Feature Requests,closed,To Be Determined,signals2,Boost 1.53.0,Problem,fixed,,