<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">mmm... no, it looks like now it is hanging in aioPoll :(<div>I'm testing with a squeak 4.2 and the problem is evident and automatic...&nbsp;you can see the problem, if you want :)</div><div><br></div><div>cheers,</div><div>Esteban</div><div><br></div><div><div>El 11/04/2011, a las 6:00p.m., Esteban Lorenzano escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div>I'm experimenting some "random hangs" with my latest builds of cocoa cog (any jit version, I don't know jet if stack too)</div><div>The application was hanging (but not crashing) each X random time and with no information, even running with gdb. After a while testing, I found that the problem was gere:&nbsp;</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(0, 140, 0); ">/* sleep for microSeconds or until i/o becomes possible, avoiding</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(0, 140, 0); ">&nbsp;&nbsp; sleeping in select() if timeout too small */</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span style="color: #c800a7">int</span> aioSleepForUsecs(<span style="color: #c800a7">int</span> microSeconds)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(125, 70, 37); ">#if defined(HAVE_NANOSLEEP)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">&nbsp; <span style="color: #c800a7">if</span> (microSeconds &lt; (<span style="color: #4100e0">1000000</span>/<span style="color: #4100e0">60</span>))<span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #008c00">/* &lt; 1 timeslice? */</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">&nbsp; &nbsp; {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">&nbsp; &nbsp; &nbsp; <span style="color: #c800a7">if</span> (!aioPoll(<span style="color: #4100e0">0</span>))</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp; <span style="color: #c800a7">struct</span> timespec rqtp= { <span style="color: #4100e0">0</span>, microSeconds * <span style="color: #4100e0">1000</span> };</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp; <span style="color: #c800a7">struct</span> timespec rmtp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp; nanosleep(&amp;rqtp, &amp;rmtp);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(0, 140, 0); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span>&nbsp; microSeconds= </span><span style="color: #4100e0">0</span><span style="color: #000000">;<span class="Apple-tab-span" style="white-space:pre">                        </span></span>/* poll but don't block */</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">&nbsp; &nbsp; }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(125, 70, 37); ">#endif</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">&nbsp; <span style="color: #c800a7">return</span> aioPoll(microSeconds);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">}</div></div><div><br></div><div>and more precisely when calling nanosleep</div><div>for now, I disabled HAVE_NANOSLEEP definition, and I'm testing (right now, no hangs), but I don't know how this should work.&nbsp;</div><div><br></div><div>Someone knows?</div><div><br></div><div>Cheers,</div><div>Esteban</div></div></blockquote></div><br></body></html>