From 32a1b5068ad61bb025ef28f8bc3bdf81af9bf581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 26 Mar 2017 14:51:12 +0200 Subject: Revert "Use a single libusb context" This reverts commit c8a6dc6c23a5efe99b4bf937003ba3f2f7f8f200. libusb on Windows isn't really safe to use from different threads with a single context. --- Source/Core/Common/LibusbContext.cpp | 49 ------------------------------------ 1 file changed, 49 deletions(-) delete mode 100644 Source/Core/Common/LibusbContext.cpp (limited to 'Source/Core/Common/LibusbContext.cpp') diff --git a/Source/Core/Common/LibusbContext.cpp b/Source/Core/Common/LibusbContext.cpp deleted file mode 100644 index 1eb729c4a0..0000000000 --- a/Source/Core/Common/LibusbContext.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2017 Dolphin Emulator Project -// Licensed under GPLv2+ -// Refer to the license.txt file included. - -#include -#include -#include - -#include "Common/LibusbContext.h" -#include "Common/MsgHandler.h" -#include "Common/StringUtil.h" - -namespace LibusbContext -{ -static std::shared_ptr s_libusb_context; -static std::once_flag s_context_initialized; - -static libusb_context* Create() -{ - libusb_context* context; - const int ret = libusb_init(&context); - if (ret < LIBUSB_SUCCESS) - { - bool is_windows = false; -#ifdef _WIN32 - is_windows = true; -#endif - const std::string reason = - is_windows && ret == LIBUSB_ERROR_NOT_FOUND ? - GetStringT("Failed to initialize libusb because usbdk is not installed.") : - StringFromFormat(GetStringT("Failed to initialize libusb (%s).").c_str(), - libusb_error_name(ret)); - PanicAlertT("%s\nSome USB features will not work.", reason.c_str()); - return nullptr; - } - return context; -} - -std::shared_ptr Get() -{ - std::call_once(s_context_initialized, []() { - s_libusb_context.reset(Create(), [](auto* context) { - if (context != nullptr) - libusb_exit(context); - }); - }); - return s_libusb_context; -} -} -- cgit v1.2.3