From 57d59b4c7a2cd25a21a0884fd771ed2d2c73c0de Mon Sep 17 00:00:00 2001 From: Chris Cannam Date: Mon, 26 Sep 2022 10:11:16 +0100 Subject: [PATCH] Eliminate the mlock logic entirely. It's caused a couple of issues lately and it turns out it wasn't even used! --- src/common/RingBuffer.h | 23 +---------------------- src/common/sysutils.h | 10 ---------- 2 files changed, 1 insertion(+), 32 deletions(-) diff --git a/src/common/RingBuffer.h b/src/common/RingBuffer.h index 2fabd14..40d8ebb 100644 --- a/src/common/RingBuffer.h +++ b/src/common/RingBuffer.h @@ -77,12 +77,6 @@ public: */ RingBuffer *resized(int newSize) const; - /** - * Lock the ring buffer into physical memory. Returns true - * for success. - */ - bool mlock(); - /** * Reset read and write pointers, thus emptying the buffer. * Should be called from the write thread. @@ -184,7 +178,6 @@ protected: std::atomic m_writer; std::atomic m_reader; const int m_size; - bool m_mlocked; int readSpaceFor(int w, int r) const { int space; @@ -209,8 +202,7 @@ template RingBuffer::RingBuffer(int n) : m_buffer(allocate(n + 1)), m_writer(0), - m_size(n + 1), - m_mlocked(false) + m_size(n + 1) { #ifdef DEBUG_RINGBUFFER std::cerr << "RingBuffer[" << this << "]::RingBuffer(" << n << ")" << std::endl; @@ -226,10 +218,6 @@ RingBuffer::~RingBuffer() std::cerr << "RingBuffer[" << this << "]::~RingBuffer" << std::endl; #endif - if (m_mlocked) { - MUNLOCK((void *)m_buffer, m_size * sizeof(T)); - } - deallocate(m_buffer); } @@ -263,15 +251,6 @@ RingBuffer::resized(int newSize) const return newBuffer; } -template -bool -RingBuffer::mlock() -{ - if (MLOCK((void *)m_buffer, m_size * sizeof(T))) return false; - m_mlocked = true; - return true; -} - template void RingBuffer::reset() diff --git a/src/common/sysutils.h b/src/common/sysutils.h index f4ccebb..32d1440 100644 --- a/src/common/sysutils.h +++ b/src/common/sysutils.h @@ -108,10 +108,6 @@ void gettimeofday(struct timeval *p, void *tz); #ifdef _WIN32 -#define MLOCK(a,b) (void)1 -#define MUNLOCK(a,b) (void)1 -#define MUNLOCK_SAMPLEBLOCK(a) (void)1 - namespace RubberBand { extern void system_memorybarrier(); } @@ -119,14 +115,8 @@ extern void system_memorybarrier(); #else // !_WIN32 -#include -#include #include -#define MLOCK(a,b) mlock((char *)(a),(b)) -#define MUNLOCK(a,b) (munlock((char *)(a),(b)) ? (perror("munlock failed"), 0) : 0) -#define MUNLOCK_SAMPLEBLOCK(a) do { if (!(a).empty()) { const float &b = *(a).begin(); MUNLOCK(&b, (a).capacity() * sizeof(float)); } } while(0); - #ifdef __APPLE__ # if defined __MAC_10_12 # define MBARRIER() __sync_synchronize()