It may be closed automatically, but *when* will it be closed? There&#39;s no guarantee on when finalizers will be called which is why calling .Close() is a much better solution (where possible).<br><br>Alan.<br><br><div class="gmail_quote">
On Thu, Feb 21, 2008 at 11:53 AM, Zoltan Varga &lt;<a href="mailto:vargaz@gmail.com">vargaz@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I applied the following patch instead to the 1.9 branch:<br>
<br>
Index: HttpConnection.cs<br>
===================================================================<br>
--- HttpConnection.cs &nbsp; (revision 96098)<br>
+++ HttpConnection.cs &nbsp; (working copy)<br>
@@ -313,8 +313,11 @@<br>
<div class="Ih2E3d"><br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Socket s = sock;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sock = null;<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.Shutdown (SocketShutdown.Both);<br>
</div>- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.Close ();<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.Shutdown (SocketShutdown.Both);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } finally {<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s.Close ();<br>
<div class="Ih2E3d">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (context_bound)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;epl.UnbindContext (context);<br>
<br>
</div>This is still just a workaround, since the socket should be closed automatically<br>
by its finalizer.<br>
<font color="#888888"><br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Zoltan<br>
</font><div><div></div><div class="Wj3C7c"><br>
On Wed, Feb 20, 2008 at 5:37 PM, Avery Pennarun &lt;<a href="mailto:apenwarr@gmail.com">apenwarr@gmail.com</a>&gt; wrote:<br>
&gt; 2008/2/20 Steve Bjorg &lt;<a href="mailto:steveb@mindtouch.com">steveb@mindtouch.com</a>&gt;:<br>
&gt;<br>
&gt; &gt; - s.Shutdown (SocketShutdown.Both);<br>
&gt; &nbsp;&gt; + try {<br>
&gt; &nbsp;&gt; + s.Shutdown (SocketShutdown.Both);<br>
&gt; &nbsp;&gt; + } catch(Exception e) {<br>
&gt; &nbsp;&gt; + // log here?<br>
&gt; &nbsp;&gt; + }<br>
&gt; &nbsp;&gt; &nbsp; s.Close ();<br>
&gt;<br>
&gt; &nbsp;Why call Shutdown() at all? &nbsp;The shutdown syscall is only useful if<br>
&gt; &nbsp;you need to keep the fd around longer (eg. if someone else is still<br>
&gt; &nbsp;holding onto it and you don&#39;t want it to be reused). &nbsp;In the above<br>
&gt; &nbsp;code, close() shuts down the socket anyway.<br>
&gt;<br>
&gt; &nbsp;...unless mono&#39;s socket code is doing something different than<br>
&gt; &nbsp;standard C sockets, that is.<br>
&gt;<br>
&gt; &nbsp;Have fun,<br>
&gt;<br>
&gt; &nbsp;Avery<br>
&gt; &nbsp;_______________________________________________<br>
&gt; &nbsp;Mono-devel-list mailing list<br>
&gt; &nbsp;<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
&gt; &nbsp;<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
&gt;<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</div></div></blockquote></div><br>