1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-15 20:03:57 +02:00
openwrt-packages/net/rtorrent/patches/130-usleep.patch
Ilya Lipnitskiy 5d8d4fbbcb
treewide: Run refresh on all packages
The crude loop I wrote to come up with this changeset:

  find -L package/feeds/packages/ -name patches | \
  sed 's/patches$/refresh/' | sort | xargs make

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-20 16:02:15 -08:00

32 lines
1.0 KiB
Diff

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(-)
--- 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 @@ public:
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; }