hotspot/src/os/bsd/vm/os_bsd.cpp
changeset 24931 4bba680186bd
parent 24424 2658d7834c6e
child 25064 244218e6ec0a
equal deleted inserted replaced
24930:1fc3041c8e78 24931:4bba680186bd
  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) {