<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Harold,<div><br></div><div>I missed that. In that case. The code looks great.</div><div><br></div><div>thanks,</div><div>Karen</div><div><br><div><div>On Feb 18, 2013, at 10:58 AM, harold seigel wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div text="#000000" bgcolor="#FFFFFF">
    Hi Karen,<br>
    <br>
    Thanks for reviewing this.&nbsp; The existing SR_handlers for both linux
    and bsd already save and restore errno:<br>
    <blockquote>static void SR_handler(int sig, siginfo_t* siginfo,
      ucontext_t* context) {<br>
      &nbsp; // Save and restore errno to avoid confusing native code with
      EINTR<br>
      &nbsp; // after sigsuspend.<br>
      &nbsp; int old_errno = errno;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br>
    </blockquote>
    Harold<br>
    <br>
    <div class="moz-cite-prefix">On 2/18/2013 10:51 AM, Karen Kinnear
      wrote:<br>
    </div>
    <blockquote cite="mid:E8BC2CD6-E915-4673-B55A-5CCB81A21B8F@oracle.com" type="cite">
      <pre wrap="">Harold,

Thank you for doing this.

I think you also want to catch SR_handler - this is our suspend/resume handler. Today this is on
linux and bsd. An upcoming change will use that handler for more than just the VM Thread, and will support it on Solaris as well.
Copying Rickard/Staffan who will want to extend this change for the Solaris SR_handler when it arrives.


On Feb 18, 2013, at 9:07 AM, harold seigel wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">Hi,

Please review the following change.

Summary: With this change, the actual signal handler saves the errno before calling the function that does most of the signal handling processing.  It then restores the value of errno when the signal handling processing function returns.

Open webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~hseigel/bug_6749267/">http://cr.openjdk.java.net/~hseigel/bug_6749267/</a> <a class="moz-txt-link-rfc2396E" href="http://cr.openjdk.java.net/%7Ehseigel/bug_6749267/">&lt;http://cr.openjdk.java.net/%7Ehseigel/bug_6749267/&gt;</a>

Bug link at: <a class="moz-txt-link-freetext" href="https://jbs.oracle.com/bugs/browse/JDK-6749267">https://jbs.oracle.com/bugs/browse/JDK-6749267</a>

The changes were tested with JPRT, JCK Lang and VM tests, UTE tests, and with JPRT.  Also, I used the debugger to change the value of errno inside of the signal handling processing method and then verified that it got restored properly.
</pre>
      </blockquote>
      <pre wrap="">Thank you for reporting what tests you ran. UTE tests - could you be more specific, that is just the framework.

We have some existing signal tests in the vmsqe tests - see runtime/signal/*.
</pre>
      <blockquote type="cite">
        <pre wrap="">Thanks!  Harold
</pre>
      </blockquote>
      <pre wrap="">thanks,
Karen

</pre>
    </blockquote>
    <br>
  </div>

</blockquote></div><br></div></body></html>