diff --git a/src/common/bounded_threadsafe_queue.h b/src/common/bounded_threadsafe_queue.h
index 21217801e6..14e887c705 100644
--- a/src/common/bounded_threadsafe_queue.h
+++ b/src/common/bounded_threadsafe_queue.h
@@ -9,10 +9,11 @@
 #include <memory>
 #include <mutex>
 #include <new>
-#include <stop_token>
 #include <type_traits>
 #include <utility>
 
+#include "common/polyfill_thread.h"
+
 namespace Common {
 
 #if defined(__cpp_lib_hardware_interference_size)
@@ -78,7 +79,7 @@ public:
         auto& slot = slots[idx(tail)];
         if (!slot.turn.test()) {
             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();
         slot.destroy();