NullSocketServer::Wait: Don't warn if we have to wait a long time for messages
Make the warning timeout for Event::Wait configurable, and let NullSocketServer::Wait pass kForever to completely eliminate the warning. 3000 ms is a good default warning timeout for Event::Wait, but in some cases---such as when a message queue is waiting for a message to arrive---we don't want the warning, since a long wait isn't a reliable indicator that the system is deadlocked. It might just be that no one is posting messages. Bug: webrtc:10531 Change-Id: Ic5969b8bfedb96376bd6d6a72ba6a4591750a920 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132017 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27574}
This commit is contained in:
@ -34,9 +34,21 @@ class Event {
|
||||
void Set();
|
||||
void Reset();
|
||||
|
||||
// Wait for the event to become signaled, for the specified number of
|
||||
// |milliseconds|. To wait indefinetly, pass kForever.
|
||||
bool Wait(int milliseconds);
|
||||
// Waits for the event to become signaled, but logs a warning if it takes more
|
||||
// than `warn_after_ms` milliseconds, and gives up completely if it takes more
|
||||
// than `give_up_after_ms` milliseconds. (If `warn_after_ms >=
|
||||
// give_up_after_ms`, no warning will be logged.) Either or both may be
|
||||
// `kForever`, which means wait indefinitely.
|
||||
//
|
||||
// Returns true if the event was signaled, false if there was a timeout or
|
||||
// some other error.
|
||||
bool Wait(int give_up_after_ms, int warn_after_ms);
|
||||
|
||||
// Waits with the given timeout and a reasonable default warning timeout.
|
||||
bool Wait(int give_up_after_ms) {
|
||||
return Wait(give_up_after_ms,
|
||||
give_up_after_ms == kForever ? 3000 : kForever);
|
||||
}
|
||||
|
||||
private:
|
||||
#if defined(WEBRTC_WIN)
|
||||
|
||||
Reference in New Issue
Block a user