src/os/bsd/vm/os_bsd.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8044339 Cdiff src/os/bsd/vm/os_bsd.cpp

src/os/bsd/vm/os_bsd.cpp

Print this page
rev 6486 : imported patch JDK-8044339.diff

*** 4297,4310 **** // (b) timeout // (c) thread.interrupt // // Thread.interrupt and object.notify{All} both call Event::set. // That is, we treat thread.interrupt as a special case of notification. ! // The underlying Solaris implementation, cond_timedwait, admits ! // spurious/premature wakeups, but the JLS/JVM spec prevents the ! // JVM from making those visible to Java code. As such, we must ! // filter out spurious wakeups. We assume all ETIME returns are valid. // // TODO: properly differentiate simultaneous notify+interrupt. // In that case, we should propagate the notify to another waiter. while (_Event < 0) { --- 4297,4308 ---- // (b) timeout // (c) thread.interrupt // // Thread.interrupt and object.notify{All} both call Event::set. // That is, we treat thread.interrupt as a special case of notification. ! // We must filter out spurious wakeups. ! // We assume all ETIME returns are valid. // // TODO: properly differentiate simultaneous notify+interrupt. // In that case, we should propagate the notify to another waiter. while (_Event < 0) {
src/os/bsd/vm/os_bsd.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File