<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 6, 2013 at 5:45 PM, E.S. Rosenberg <span dir="ltr">&lt;<a href="mailto:esr+linux-il@g.jct.ac.il" target="_blank">esr+linux-il@g.jct.ac.il</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5">2013/6/6 Erez D &lt;<a href="mailto:erez0001@gmail.com">erez0001@gmail.com</a>&gt;:<br>


&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Jun 6, 2013 at 5:29 PM, E.S. Rosenberg &lt;<a href="mailto:esr%2Blinux-il@g.jct.ac.il">esr+linux-il@g.jct.ac.il</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; re:all, forgot to change my from field.<br>
&gt;&gt;<br>
&gt;&gt; 2013/6/6 Erez D &lt;<a href="mailto:erez0001@gmail.com">erez0001@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Thu, Jun 6, 2013 at 5:04 PM, E.S. Rosenberg &lt;<a href="mailto:esr@g.jct.ac.il">esr@g.jct.ac.il</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2013/6/6 Erez D &lt;<a href="mailto:erez0001@gmail.com">erez0001@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Tue, Jun 4, 2013 at 6:09 PM, Shachar Shemesh &lt;<a href="mailto:shachar@shemesh.biz">shachar@shemesh.biz</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; On 04/06/13 15:28, Erez D wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; thanks,<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; so i guess if i use unidirectional connection, and the reader does<br>
&gt;&gt; &gt;&gt; &gt;&gt; not<br>
&gt;&gt; &gt;&gt; &gt;&gt; expect to get an EOF()<br>
&gt;&gt; &gt;&gt; &gt;&gt; thank i&#39;m safe.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Why are you so keen on doing it wrong?<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; No, you are not safe. If the child process dies because of a<br>
&gt;&gt; &gt;&gt; &gt;&gt; segmentation<br>
&gt;&gt; &gt;&gt; &gt;&gt; fault (or whatever), the parent will notice this through the EOF<br>
&gt;&gt; &gt;&gt; &gt;&gt; received (I<br>
&gt;&gt; &gt;&gt; &gt;&gt; am assuming here, since you couldn&#39;t be bothered with closing a file<br>
&gt;&gt; &gt;&gt; &gt;&gt; descriptor, that you did not install a SIGCHLD handler to monitor<br>
&gt;&gt; &gt;&gt; &gt;&gt; for<br>
&gt;&gt; &gt;&gt; &gt;&gt; this<br>
&gt;&gt; &gt;&gt; &gt;&gt; possibility). This means that should one process die unexpectedly,<br>
&gt;&gt; &gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; other<br>
&gt;&gt; &gt;&gt; &gt;&gt; will hang forever.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; it&#39;s not a matter of being bothered. closing a file has it&#39;s<br>
&gt;&gt; &gt;&gt; &gt; implications<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 1.  close the file for one thread closes for all<br>
&gt;&gt; &gt;&gt; thread and fork are 2 very different things, best practice for fork<br>
&gt;&gt; &gt;&gt; (&#39;full&#39; children, I think everyone understands fork() when you say<br>
&gt;&gt; &gt;&gt; child) is to close, when using threads that is I believe not the case.<br>
&gt;&gt; &gt;&gt; &gt; 2. what if i want later children using the same pipe, as in all<br>
&gt;&gt; &gt;&gt; &gt; childs<br>
&gt;&gt; &gt;&gt; &gt; write<br>
&gt;&gt; &gt;&gt; &gt; to same pipe read by parent...<br>
&gt;&gt; &gt;&gt; so the children are all closing the read end and the parent only<br>
&gt;&gt; &gt;&gt; closes write, where is the problem?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; if the parent closes the &quot;write&quot; side, then new forked children have<br>
&gt;&gt; &gt; their<br>
&gt;&gt; &gt; &quot;write&quot; side already closed.<br>
&gt;&gt; That&#39;s why we are able to check if we are a child or a parent with the<br>
&gt;&gt; fork() function.<br>
&gt;<br>
&gt; that doesn&#39;t help<br>
&gt;<br>
&gt; sunday: parent creates a pipe<br>
&gt; monday: parent forks for child 1. parent closes write. child 1 closes read.<br>
&gt; child 1 now can write and parent can read.<br>
&gt; tuesday: parent forks for child 2. child 2 can not write - pipe already<br>
&gt; close by parent on monday.<br>
</div></div>Seriously?<br></blockquote><div>yes,  Seriously!</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Just have the parent request another child from the child,</blockquote><div>can&#39;t do - i do not have the source of the child. ( i do fork+exec )<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

 or create a<br>
child who&#39;s specific task is spawning the worker children,<br></blockquote><div>why complicate things ? such a child takes a lot more resource than a non-closed side of a pipe<br></div><div>also you have just moved the problem, instead of the parent having a non closed write side, you have this special child with a non closed write side.<br>

</div><div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">or any of<br>
the other many solutions to this problem.<br></blockquote><div>any thing simpler that  &quot;not closing a the &#39;write&#39; side of a pipe in the parent&quot; ? <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div class=""><div class="h5">&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Best practices are there for a reason, despite what others here<br>
&gt;&gt; &gt;&gt; &gt;&gt; might<br>
&gt;&gt; &gt;&gt; &gt;&gt; have<br>
&gt;&gt; &gt;&gt; &gt;&gt; you think.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Shachar<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; Linux-il mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:Linux-il@cs.huji.ac.il">Linux-il@cs.huji.ac.il</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il" target="_blank">http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div></div>