|
@@ -9,10 +9,11 @@
|
|
|
#include <memory>
|
|
#include <memory>
|
|
|
#include <mutex>
|
|
#include <mutex>
|
|
|
#include <new>
|
|
#include <new>
|
|
|
-#include <stop_token>
|
|
|
|
|
#include <type_traits>
|
|
#include <type_traits>
|
|
|
#include <utility>
|
|
#include <utility>
|
|
|
|
|
|
|
|
|
|
+#include "common/polyfill_thread.h"
|
|
|
|
|
+
|
|
|
namespace Common {
|
|
namespace Common {
|
|
|
|
|
|
|
|
#if defined(__cpp_lib_hardware_interference_size)
|
|
#if defined(__cpp_lib_hardware_interference_size)
|
|
@@ -78,7 +79,7 @@ public:
|
|
|
auto& slot = slots[idx(tail)];
|
|
auto& slot = slots[idx(tail)];
|
|
|
if (!slot.turn.test()) {
|
|
if (!slot.turn.test()) {
|
|
|
std::unique_lock lock{cv_mutex};
|
|
std::unique_lock lock{cv_mutex};
|
|
|
- cv.wait(lock, stop, [&slot] { return slot.turn.test(); });
|
|
|
|
|
|
|
+ Common::CondvarWait(cv, lock, stop, [&slot] { return slot.turn.test(); });
|
|
|
}
|
|
}
|
|
|
v = slot.move();
|
|
v = slot.move();
|
|
|
slot.destroy();
|
|
slot.destroy();
|