 Chromium Code Reviews
 Chromium Code Reviews Issue 2433773005:
  Move OS_WIN specific logic in MessagePumpDefault::Run into waitable_event_win.cc  (Closed)
    
  
    Issue 2433773005:
  Move OS_WIN specific logic in MessagePumpDefault::Run into waitable_event_win.cc  (Closed) 
  | Index: base/synchronization/waitable_event_posix.cc | 
| diff --git a/base/synchronization/waitable_event_posix.cc b/base/synchronization/waitable_event_posix.cc | 
| index a8b686b88ce8ff583f68daad2c37e63efe1b1c67..f1ad9857c062caefc7ff0e07d7959dfd658670b3 100644 | 
| --- a/base/synchronization/waitable_event_posix.cc | 
| +++ b/base/synchronization/waitable_event_posix.cc | 
| @@ -153,17 +153,22 @@ class SyncWaiter : public WaitableEvent::Waiter { | 
| }; | 
| void WaitableEvent::Wait() { | 
| - bool result = TimedWait(TimeDelta::FromSeconds(-1)); | 
| + bool result = TimedWaitUntil(TimeTicks::Max()); | 
| DCHECK(result) << "TimedWait() should never fail with infinite timeout"; | 
| } | 
| -bool WaitableEvent::TimedWait(const TimeDelta& max_time) { | 
| +bool WaitableEvent::TimedWait(const TimeDelta& max_delta) { | 
| 
danakj
2016/11/29 02:46:45
one more nit: i think wait_delta or just delta eve
 
stanisc
2016/11/29 22:33:20
Done.
 | 
| + // TimeTicks takes care of overflow including the cases when max_delta | 
| + // is a maximum value. | 
| + return TimedWaitUntil(TimeTicks::Now() + max_delta); | 
| +} | 
| + | 
| +bool WaitableEvent::TimedWaitUntil(const TimeTicks& end_time) { | 
| + base::ThreadRestrictions::AssertWaitAllowed(); | 
| // Record the event that this thread is blocking upon (for hang diagnosis). | 
| base::debug::ScopedEventWaitActivity event_activity(this); | 
| - base::ThreadRestrictions::AssertWaitAllowed(); | 
| - const TimeTicks end_time(TimeTicks::Now() + max_time); | 
| - const bool finite_time = max_time.ToInternalValue() >= 0; | 
| + const bool finite_time = !end_time.is_max(); | 
| kernel_->lock_.Acquire(); | 
| if (kernel_->signaled_) { |