[zeromq-dev] Thread Safe sockets
cremes.devlist at mac.com
Fri Feb 3 17:52:23 CET 2012
On Feb 3, 2012, at 10:44 AM, john skaller wrote:
> On 04/02/2012, at 3:19 AM, Chuck Remes wrote:
>> On Feb 3, 2012, at 10:05 AM, john skaller wrote:
>>>> A mutex works fine with a 0mq socket so adding one to the socket itself would also work. I just don't think it would perform well plus everyone would have to pay that price even if they didn't need it. Yuck.
>>> I have implemented (but not tested) thread safe sockets, available in Pull request.
>> You're lucky that the lack of tests isn't a problem for merging to master.
> Heck no! Its a "bug" in ZMQ that there aren't extensive regression tests.
> That "F" system has hundreds of tests.
> I am working on a test harness which will allow testing multi-process test
> cases, which are needed for 0MQ: eg a client and server as separate
> processes. Without that, automated testing is impossible.
> The first cut of this code is written, but it crashes sporadically and at present
> I'm trying to find out why. Yes its probably a bug in that "F" system :)
A test harness will be a very nice and very welcome addition to the project. I took a crack at it myself about 6 months ago but my C/C++ skills have eroded too far.
>> We'll let the community decide. In my role as a maintainer, I have no opinion on patches. :)
> In your role as Chuck I'm sure you do :)
In my personal opinion, it sounds like an OK patch. If people don't use the new api call to allocate their context, they pay no penalty. Assuming that's the case, then I actually kind of like it.
> I'd be interested in any performance comparisons. The patch is sure to slow 0MQ
> down (for people not using the feature) but I have no idea how much. I have no particular
> need for this patch myself. I also don't have any serious code base to test it against.
Kind of odd that you wrote the patch if you don't even need it. I think I'm back to confusion about your goals in this message thread regarding libzmq & Felix.
> I don't mind if the patch is reverted (though the reorganisation of the C API should
> be preserved, i.e. the first commit).
It may get reverted by someone else with an opinion.
> However without it no one can experiment
> so its hard to get any real experience to make a judgement. It only took a couple
> of hours.
Agreed. Opinions are hard to form without data. Your patch gives us the opportunity to collect that data and make an informed decision.
More information about the zeromq-dev