rtorrent: Switch to using static libtorrent
[feed/packages.git] / net / rtorrent / patches / 130-usleep.patch
diff --git a/net/rtorrent/patches/130-usleep.patch b/net/rtorrent/patches/130-usleep.patch
new file mode 100644 (file)
index 0000000..c3463e4
--- /dev/null
@@ -0,0 +1,33 @@
+From b3d75a642177f21f00d18f0e46bca4a9f363d08e Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Fri, 23 Aug 2019 13:35:28 -0700
+Subject: [PATCH] Replace usleep with C++11 sleep_for
+
+usleep was deprecated with POSIX 2008 and optionally unavailable with
+uClibc-ng.
+---
+ src/thread_base.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/thread_base.cc b/src/thread_base.cc
+index 081791d4..275015ab 100644
+--- a/src/thread_base.cc
++++ b/src/thread_base.cc
+@@ -42,6 +42,8 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include <iostream>
++#include <chrono>
++#include <thread>
+ #include <signal.h>
+ #include <unistd.h>
+ #include <rak/error_number.h>
+@@ -66,7 +68,7 @@ class lt_cacheline_aligned thread_queue_hack {
+   thread_queue_hack() { std::memset(this, 0, sizeof(thread_queue_hack)); }
+-  void     lock()   { while (!__sync_bool_compare_and_swap(&m_lock, 0, 1)) usleep(0); }
++  void     lock()   { while (!__sync_bool_compare_and_swap(&m_lock, 0, 1)) std::this_thread::sleep_for(std::chrono::microseconds(0)); }
+   void     unlock() { __sync_bool_compare_and_swap(&m_lock, 1, 0); }
+   iterator begin() { return m_queue; }