
On Thursday 08 March 2007 17:52 pm, Stjepan Rajko wrote:
Thanks for posting that! I downloaded the tarball and added it to my boost tree. My first question is regarding the file structure - currently, there are conflicts between files of the old signals library and thread_safe_signals. I am trying to adapt the signal networks / signal flow library to be compatible with both signals and your thread_safe_signals, and it would be helpful if both signal libraries could co-exist in the same file system. To allow this, I modified last_value.hpp, signals/connection.hpp and signals/slot.hpp as follows:
#ifdef BOOST_USE_THREAD_SAFE_SIGNALS ... your new code ... #else ... old code ...
In finalizing your library, would it be possible for you to add some mechanism like this to allow the two signal libraries to coexist on the same file system?
I intended for thread_safe_signals to be unpacked in a separate directory from your full boost installation. You could then choose to use it (or not) by including the path to thread_safe_signals in your include path, before the path to the full boost installation.
Also, what are your plans for thread_safe_signals? Will signals be replaced with thread_safe_signals or be a separate addition to the library?
It's intended to be a replacement. Douglas Gregor indicated he was fine with replacing the current version of signals with a thread-safe version 2, if the interface wasn't changed too much. He hasn't commented specifically on the interface changes we have made though. Timmo Stange also has another thread-safe implementation he's been working on in parallel, which is similar in interface to thread_safe_signals, but uses much more of the original Boost.Signals codebase.
When I tried to build my code using thread_safe_signals, I get an error using MSVC8 and boost_1_33_1:
\boost\thread_safe_signals\connection.hpp(123) : error C2039: 'lock' : is not a member of 'boost::function<Signature>'
Thanks for the bug report, I don't have any Microsoft compilers. Would you try the attached patch?
Should I be using the CVS version of boost?
No, anything 1.33.0 or newer should be fine on Windows. I usually use 1.32.0 on Linux. -- Frank