<p>Ric, this is great! I'll backport the fix to 3.2 and 4.0 once MinRK confirms it.</p>
<div class="gmail_quote">On Nov 6, 2013 4:55 PM,  <<a href="mailto:Richard_Newton@waters.com">Richard_Newton@waters.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<p><font face="sans-serif">Well, hopefully I haven't broken anything, it looks OK to me.</font><br>
<br>
<font face="sans-serif">For the record, a way I found to make this trigger every time is to put a 1 second sleep between the unlock and the relock, and a 0.5 second sleep at the start of reaper_t::process_reaped (without the delay in process_repeaped the second stop gets sent but the mailbox gets closed before its processed).</font><br>

<br>
<font face="sans-serif">Ric.</font><br>
<br>
<br>
<img width="16" height="16" src="cid:1__=0FBBF688DFC4B3CF8f9e8a93df938@waters.com" border="0" alt="Inactive hide details for "Pieter Hintjens" ---06/11/2013 03:45:28 PM---On Wed, Nov 6, 2013 at 4:31 PM, <Richard_Newton@waters."><font color="#424282" face="sans-serif">"Pieter Hintjens" ---06/11/2013 03:45:28 PM---On Wed, Nov 6, 2013 at 4:31 PM, <<a href="mailto:Richard_Newton@waters.com" target="_blank">Richard_Newton@waters.com</a>> wrote: ></font><br>

<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">"Pieter Hintjens" <<a href="mailto:ph@imatix.com" target="_blank">ph@imatix.com</a>></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif">"ZeroMQ development list" <<a href="mailto:zeromq-dev@lists.zeromq.org" target="_blank">zeromq-dev@lists.zeromq.org</a>>, </font><br>

<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">06/11/2013 03:45 PM</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">Re: [zeromq-dev] Bad file descriptor in rm_fd()</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Sent by:   </font><font size="1" face="sans-serif"><a href="mailto:zeromq-dev-bounces@lists.zeromq.org" target="_blank">zeromq-dev-bounces@lists.zeromq.org</a></font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091a5"><br>
<br>
<br>
<tt><font>On Wed, Nov 6, 2013 at 4:31 PM, <<a href="mailto:Richard_Newton@waters.com" target="_blank">Richard_Newton@waters.com</a>> wrote:<br>
><br>
> OK, so investigating this, I think </font></tt><tt><font><a href="https://github.com/zeromq/libzmq/pull/738" target="_blank">https://github.com/zeromq/libzmq/pull/738</a></font></tt><tt><font> may solve the issue.<br>

><br>
> What I think is happening is ctx_t::terminate, we set the state to terminating then immediately unlock and relock the slot_sync lock.<br>
><br>
> If the last destroy_socket gets in while we are brief unlocked, both destroy_socket and terminate will issue a reaper->stop (), so we will call process_stop twice.<br>
><br>
> Anyone know why we do the unlock/relock dance?<br>
<br>
<br>
I'd guess this was an attempt by Sustrik to make the shutdown work<br>
properly. It's always been a difficult part of the design.<br>
<br>
-Pieter<br>
_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org" target="_blank">zeromq-dev@lists.zeromq.org</a><br>
</font></tt><tt><font><a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a></font></tt><tt><font><br>
<br>
</font></tt><br>

<p><pre>===========================================================
The information in this email is confidential, and is intended solely for the addressee(s). 
Access to this email by anyone else is unauthorized and therefore prohibited.  If you are 
not the intended recipient you are notified that disclosing, copying, distributing or taking 
any action in reliance on the contents of this information is strictly prohibited and may be unlawful.
===========================================================</pre></p></p></div>
<br>_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
<a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
<br></blockquote></div>