equal
deleted
inserted
replaced
4297 // (b) timeout |
4297 // (b) timeout |
4298 // (c) thread.interrupt |
4298 // (c) thread.interrupt |
4299 // |
4299 // |
4300 // Thread.interrupt and object.notify{All} both call Event::set. |
4300 // Thread.interrupt and object.notify{All} both call Event::set. |
4301 // That is, we treat thread.interrupt as a special case of notification. |
4301 // That is, we treat thread.interrupt as a special case of notification. |
4302 // The underlying Solaris implementation, cond_timedwait, admits |
4302 // We ignore spurious OS wakeups unless FilterSpuriousWakeups is false. |
4303 // spurious/premature wakeups, but the JLS/JVM spec prevents the |
4303 // We assume all ETIME returns are valid. |
4304 // JVM from making those visible to Java code. As such, we must |
|
4305 // filter out spurious wakeups. We assume all ETIME returns are valid. |
|
4306 // |
4304 // |
4307 // TODO: properly differentiate simultaneous notify+interrupt. |
4305 // TODO: properly differentiate simultaneous notify+interrupt. |
4308 // In that case, we should propagate the notify to another waiter. |
4306 // In that case, we should propagate the notify to another waiter. |
4309 |
4307 |
4310 while (_Event < 0) { |
4308 while (_Event < 0) { |