[jboss-jira] [JBoss JIRA] Updated: (JBREM-766) Guard against "spurious wakeup" from Thread.sleep()

Ron Sigal (JIRA) jira-events at lists.jboss.org
Fri Aug 17 22:31:01 EDT 2007


     [ http://jira.jboss.com/jira/browse/JBREM-766?page=all ]

Ron Sigal updated JBREM-766:
----------------------------

        Fix Version/s: 2.2.2.GA
                       2.4.0.CR1 (Pinto)
                           (was: 2.4.0.Beta1 (Pinto))
                           (was: 2.2.0.SP4_CP02)
                           (was: 2.2.1.SP1)
    Affects Version/s:     (was: 2.2.0.SP4_CP02)

> Guard against "spurious wakeup" from Thread.sleep()
> ---------------------------------------------------
>
>                 Key: JBREM-766
>                 URL: http://jira.jboss.com/jira/browse/JBREM-766
>             Project: JBoss Remoting
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 2.4.0.Beta1 (Pinto), 2.2.0.SP4, 2.2.1.GA
>            Reporter: Ron Sigal
>         Assigned To: Ron Sigal
>             Fix For: 2.4.0.CR1 (Pinto), 2.2.2.GA
>
>
> The jdk 1.5 javadoc for java.lang.Object (but not the jdk 1.4 javadoc) notes:
> A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup. While this will rarely occur in practice, applications must guard against it by testing for the condition that should have caused the thread to be awakened, and continuing to wait if the condition is not satisfied. In other words, waits should always occur in loops, like this one:
>      synchronized (obj) {
>          while (<condition does not hold>)
>              obj.wait(timeout);
>          ... // Perform action appropriate to condition
>      }
>  
> (For more information on this topic, see Section 3.2.3 in Doug Lea's "Concurrent Programming in Java (Second Edition)" (Addison-Wesley, 2000), or Item 50 in Joshua Bloch's "Effective Java Programming Language Guide" (Addison-Wesley, 2001).
> We should make sure all calls to Thread.wait() are handled appropriately.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list