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:
Karl Wiberg
2019-04-11 10:31:24 +02:00
committed by Commit Bot
parent 304ea5f7b0
commit fc47c86b12
4 changed files with 66 additions and 29 deletions

View File

@ -17,7 +17,10 @@ NullSocketServer::NullSocketServer() = default;
NullSocketServer::~NullSocketServer() {}
bool NullSocketServer::Wait(int cms, bool process_io) {
event_.Wait(cms);
// Wait with the given timeout. Do not log a warning if we end up waiting for
// a long time; that just means no one has any work for us, which is perfectly
// legitimate.
event_.Wait(/*give_up_after_ms=*/cms, /*warn_after_ms=*/Event::kForever);
return true;
}