From bf7a57fc55493247a624ecfd65e4d73964e7d8d2 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Sun, 12 Apr 2026 02:40:16 -0500 Subject: Remove vendored usvfs and Windows-only usvfs code paths The Linux port uses its own in-process FUSE VFS (FuseConnector), so usvfs was dead weight: libs/usvfs/ was never built, usvfsconnector.cpp was explicitly REMOVE_ITEM'd from the source list, and every call site was already guarded by #ifdef _WIN32 with a working Linux branch (the Windows build is also broken on this branch, since FUSE3 is a hard find_package dependency). - Drop libs/usvfs/ and src/src/usvfsconnector.{cpp,h} - Collapse #ifdef _WIN32 / usvfs include branches in organizercore, mainwindow, settings, util, spawn - Remove getUsvfsVersionString() and the "usvfs: ..." log field - Remove vfs32/64DLLName APPPARAMs (nothing reads them) - Relabel About dialog "usvfs:" row to "VFS: FUSE 3" --- libs/usvfs/src/usvfs_dll/semaphore.cpp | 57 ---------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 libs/usvfs/src/usvfs_dll/semaphore.cpp (limited to 'libs/usvfs/src/usvfs_dll/semaphore.cpp') diff --git a/libs/usvfs/src/usvfs_dll/semaphore.cpp b/libs/usvfs/src/usvfs_dll/semaphore.cpp deleted file mode 100644 index 609b2f5..0000000 --- a/libs/usvfs/src/usvfs_dll/semaphore.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "semaphore.h" -#include "exceptionex.h" - -RecursiveBenaphore::RecursiveBenaphore() : m_Counter(0), m_OwnerId(0UL), m_Recursion(0) -{ - m_Semaphore = ::CreateSemaphore(nullptr, 1, 1, nullptr); -} - -RecursiveBenaphore::~RecursiveBenaphore() -{ - ::CloseHandle(m_Semaphore); -} - -void RecursiveBenaphore::wait(DWORD timeout) -{ - DWORD tid = ::GetCurrentThreadId(); - - if (::_InterlockedIncrement(&m_Counter) > 1) { - if (tid != m_OwnerId) { - int tries = 3; - while (::WaitForSingleObject(m_Semaphore, timeout) != WAIT_OBJECT_0) { - HANDLE owner = ::OpenThread(SYNCHRONIZE, FALSE, m_OwnerId); - ON_BLOCK_EXIT([owner]() { - ::CloseHandle(owner); - }); - if ((tries <= 0) || (::WaitForSingleObject(owner, 0) == WAIT_OBJECT_0)) { - // owner has quit without releasing the semaphore! - m_Recursion = 0; - spdlog::get("usvfs")->error("thread {} never released the mutex", m_OwnerId); - break; - } else { - --tries; - } - } - } - } - m_OwnerId = tid; - ++m_Recursion; -} - -void RecursiveBenaphore::signal() -{ - if (m_Recursion == 0) { - return; - } - // no validation the signaling thread is the one owning the lock - DWORD recursion = --m_Recursion; - if (recursion == 0) { - m_OwnerId = 0; - } - DWORD result = ::_InterlockedDecrement(&m_Counter); - if (result > 0) { - if (recursion == 0) { - ::ReleaseSemaphore(m_Semaphore, 1, nullptr); - } - } -} -- cgit v1.3.1