curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "csulyj (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CURATOR-283) LockInternals does not deal with spurious weakup?
Date Wed, 23 Dec 2015 12:43:46 GMT

    [ https://issues.apache.org/jira/browse/CURATOR-283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15069589#comment-15069589
] 

csulyj commented on CURATOR-283:
--------------------------------

If the test happens outside of the same synchronized block that contains the wait() call then;
thread A could perform the test, and decide it needs to wait(), thread B could change the
condition and call notify(), and then thread A could enter a wait() call for which the notify()
has already been given... and lost. Thread A then never wakes up.

> LockInternals does not deal with spurious weakup?
> -------------------------------------------------
>
>                 Key: CURATOR-283
>                 URL: https://issues.apache.org/jira/browse/CURATOR-283
>             Project: Apache Curator
>          Issue Type: Test
>          Components: Recipes
>            Reporter: csulyj
>            Priority: Trivial
>
> I don't understand why method internalLockLoop doesn't not deal with spurious weakup?
> I think it should be like this : 
>  synchronized (obj) {
>      while (condition does not hold)
>         obj.wait(timeout);
>          ... // Perform action appropriate to condition
>  }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message