This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new bfe5cd1 Add thread yeield to avoid busy waiting in
LogObject::_checkout_write(). (#7576)
bfe5cd1 is described below
commit bfe5cd138d59808a31fc22a34728f3f0733e00fb
Author: Walt Karas <[email protected]>
AuthorDate: Mon Mar 29 07:45:41 2021 -0500
Add thread yeield to avoid busy waiting in LogObject::_checkout_write().
(#7576)
(cherry picked from commit f278427b1ecdc5ce9e758de51a7faf83bcc58643)
---
proxy/logging/LogObject.cc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/proxy/logging/LogObject.cc b/proxy/logging/LogObject.cc
index a3f850f..035ae70 100644
--- a/proxy/logging/LogObject.cc
+++ b/proxy/logging/LogObject.cc
@@ -39,6 +39,7 @@
#include <algorithm>
#include <vector>
+#include <thread>
static bool
should_roll_on_time(Log::RollingEnabledValues roll)
@@ -431,7 +432,9 @@ LogObject::_checkout_write(size_t *write_offset, size_t
bytes_needed)
break;
case LogBuffer::LB_RETRY:
- // no more room, but another thread should be taking care of creating a
new buffer, so try again
+ // no more room, but another thread should be taking care of creating a
new buffer, so yield to let
+ // the other thread finish, then try again
+ std::this_thread::yield();
break;
case LogBuffer::LB_BUFFER_TOO_SMALL: