<div dir="ltr">Sure, send a pull request.<div><br></div><div>-Hans</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 17, 2013 at 6:49 PM, Faré <span dir="ltr"><<a href="mailto:fahree@gmail.com" target="_blank">fahree@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Looking back at the code, it looks like the race condition can be avoided simply<br>
by moving the<br>
  (shutdown (acceptor-taskmaster acceptor))<br>
below the<br>
  (when soft ...)<br>
<br>
Do you want me to send a patch / merge request for this simple change?<br>
<div class="im"><br>
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• <a href="http://fare.tunes.org" target="_blank">http://fare.tunes.org</a><br>
</div>An atheist doesn't have to be someone who thinks he has a proof that there<br>
can't be a god. He only has to be someone who believes that the evidence on<br>
the God question is at a similar level to the evidence on the werewolf<br>
question.  — John McCarthy<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Mon, Mar 11, 2013 at 6:01 PM, Hans Hübner <<a href="mailto:hans.huebner@gmail.com">hans.huebner@gmail.com</a>> wrote:<br>
> Hunchentoot must run on Windows and with LispWorks, so patches that break in<br>
> either of these environments are unlikely to get pulled.  Other than that,<br>
> I'm open to fixes to this problem.<br>
><br>
> -Hans<br>
><br>
><br>
> On Mon, Mar 11, 2013 at 10:55 PM, Faré <<a href="mailto:fahree@gmail.com">fahree@gmail.com</a>> wrote:<br>
>><br>
>> When we stop an acceptor, we set the stop flag then shutdown the<br>
>> taskmaster. But the acceptor will only stop accepting after timeout<br>
>> and/or after the next connection; in the latter case, said connection<br>
>> will find itself without a taskmaster to process it, and will be<br>
>> dropped on the floor without being processed, while possibly leaking a<br>
>> file descriptor, meanwhile the user on the other end waits 5 minutes<br>
>> for a TCP timeout. That's not very nice, especially if stop is a<br>
>> normal part of frequent server rollouts.<br>
>><br>
>> To make things better, we could do one or both of these:<br>
>> 1- have the acceptor call the shutdown on the taskmaster after it<br>
>> catches its last request (or lack thereof).<br>
>> 2- have the acceptor use select or poll, so it can be notified of the<br>
>> stop in a timely fashion.<br>
>><br>
>> Would you accept a patch that does one or the other? What libraries<br>
>> are or aren't OK to pull into hunchentoot to achieve the second? [I<br>
>> suppose, any library that doesn't require linking a .so wrapper.]<br>
>><br>
>> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics•<br>
>> <a href="http://fare.tunes.org" target="_blank">http://fare.tunes.org</a><br>
>> The hacker: someone who figured things out and made something cool happen.<br>
>>         — Alan Schmitt<br>
>><br>
>> _______________________________________________<br>
>> tbnl-devel site list<br>
>> <a href="mailto:tbnl-devel@common-lisp.net">tbnl-devel@common-lisp.net</a><br>
>> <a href="http://common-lisp.net/mailman/listinfo/tbnl-devel" target="_blank">http://common-lisp.net/mailman/listinfo/tbnl-devel</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> tbnl-devel site list<br>
> <a href="mailto:tbnl-devel@common-lisp.net">tbnl-devel@common-lisp.net</a><br>
> <a href="http://common-lisp.net/mailman/listinfo/tbnl-devel" target="_blank">http://common-lisp.net/mailman/listinfo/tbnl-devel</a><br>
<br>
_______________________________________________<br>
tbnl-devel site list<br>
<a href="mailto:tbnl-devel@common-lisp.net">tbnl-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/tbnl-devel" target="_blank">http://common-lisp.net/mailman/listinfo/tbnl-devel</a></div></div></blockquote></div><br></div>