diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index 181051341..57ef17111 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp @@ -59,7 +59,7 @@ void EmuThread::run() { was_active = false; } else { - std::unique_lock lock(running_mutex); + std::unique_lock lock{running_mutex}; running_cv.wait(lock, [this] { return IsRunning() || exec_step || stop_run; }); } } diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h index 567fe19f1..30a30b1b8 100644 --- a/src/citra_qt/bootmanager.h +++ b/src/citra_qt/bootmanager.h @@ -49,7 +49,7 @@ public: * @note This function is thread-safe */ void SetRunning(bool running) { - std::unique_lock lock(running_mutex); + std::unique_lock lock{running_mutex}; this->running = running; lock.unlock(); running_cv.notify_all(); diff --git a/src/common/detached_tasks.cpp b/src/common/detached_tasks.cpp index a347d9e02..f268d6021 100644 --- a/src/common/detached_tasks.cpp +++ b/src/common/detached_tasks.cpp @@ -16,22 +16,22 @@ DetachedTasks::DetachedTasks() { } void DetachedTasks::WaitForAllTasks() { - std::unique_lock lock(mutex); + std::unique_lock lock{mutex}; cv.wait(lock, [this]() { return count == 0; }); } DetachedTasks::~DetachedTasks() { - std::unique_lock lock(mutex); + std::unique_lock lock{mutex}; ASSERT(count == 0); instance = nullptr; } void DetachedTasks::AddTask(std::function task) { - std::unique_lock lock(instance->mutex); + std::unique_lock lock{instance->mutex}; ++instance->count; std::thread([task{std::move(task)}]() { task(); - std::unique_lock lock(instance->mutex); + std::unique_lock lock{instance->mutex}; --instance->count; std::notify_all_at_thread_exit(instance->cv, std::move(lock)); }) diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp index d440d910a..ee8e7a761 100644 --- a/src/common/logging/backend.cpp +++ b/src/common/logging/backend.cpp @@ -44,12 +44,12 @@ public: } void AddBackend(std::unique_ptr backend) { - std::lock_guard lock(writing_mutex); + std::lock_guard lock{writing_mutex}; backends.push_back(std::move(backend)); } void RemoveBackend(std::string_view backend_name) { - std::lock_guard lock(writing_mutex); + std::lock_guard lock{writing_mutex}; const auto it = std::remove_if(backends.begin(), backends.end(), [&backend_name](const auto& i) { return backend_name == i->GetName(); }); @@ -78,7 +78,7 @@ private: backend_thread = std::thread([&] { Entry entry; auto write_logs = [&](Entry& e) { - std::lock_guard lock(writing_mutex); + std::lock_guard lock{writing_mutex}; for (const auto& backend : backends) { backend->Write(e); } diff --git a/src/common/thread.h b/src/common/thread.h index 38532a190..20af70f4d 100644 --- a/src/common/thread.h +++ b/src/common/thread.h @@ -16,7 +16,7 @@ namespace Common { class Event { public: void Set() { - std::lock_guard lk(mutex); + std::lock_guard lk{mutex}; if (!is_set) { is_set = true; condvar.notify_one(); @@ -24,14 +24,14 @@ public: } void Wait() { - std::unique_lock lk(mutex); + std::unique_lock lk{mutex}; condvar.wait(lk, [&] { return is_set; }); is_set = false; } template bool WaitFor(const std::chrono::duration& time) { - std::unique_lock lk(mutex); + std::unique_lock lk(mutex); if (!condvar.wait_for(lk, time, [this] { return is_set; })) return false; is_set = false; @@ -40,7 +40,7 @@ public: template bool WaitUntil(const std::chrono::time_point& time) { - std::unique_lock lk(mutex); + std::unique_lock lk{mutex}; if (!condvar.wait_until(lk, time, [this] { return is_set; })) return false; is_set = false; @@ -48,7 +48,7 @@ public: } void Reset() { - std::unique_lock lk(mutex); + std::unique_lock lk{mutex}; // no other action required, since wait loops on the predicate and any lingering signal will // get cleared on the first iteration is_set = false; @@ -66,7 +66,7 @@ public: /// Blocks until all "count" threads have called Sync() void Sync() { - std::unique_lock lk(mutex); + std::unique_lock lk{mutex}; const std::size_t current_generation = generation; if (++waiting == count) { @@ -80,7 +80,7 @@ public: } std::size_t Generation() const { - std::unique_lock lk(mutex); + std::unique_lock lk(mutex); return generation; } diff --git a/src/common/threadsafe_queue.h b/src/common/threadsafe_queue.h index e10baed2e..9017ff64f 100644 --- a/src/common/threadsafe_queue.h +++ b/src/common/threadsafe_queue.h @@ -78,7 +78,7 @@ public: T PopWait() { if (Empty()) { - std::unique_lock lock(cv_mutex); + std::unique_lock lock{cv_mutex}; cv.wait(lock, [this]() { return !Empty(); }); } T t; @@ -137,7 +137,7 @@ public: template void Push(Arg&& t) { - std::lock_guard lock(write_lock); + std::lock_guard lock{write_lock}; spsc_queue.Push(t); } diff --git a/src/core/announce_multiplayer_session.cpp b/src/core/announce_multiplayer_session.cpp index e255581f9..afe522c25 100644 --- a/src/core/announce_multiplayer_session.cpp +++ b/src/core/announce_multiplayer_session.cpp @@ -65,14 +65,14 @@ void AnnounceMultiplayerSession::Stop() { AnnounceMultiplayerSession::CallbackHandle AnnounceMultiplayerSession::BindErrorCallback( std::function function) { - std::lock_guard lock(callback_mutex); + std::lock_guard lock(callback_mutex); auto handle = std::make_shared>(function); error_callbacks.insert(handle); return handle; } void AnnounceMultiplayerSession::UnbindErrorCallback(CallbackHandle handle) { - std::lock_guard lock(callback_mutex); + std::lock_guard lock(callback_mutex); error_callbacks.erase(handle); } @@ -112,7 +112,7 @@ void AnnounceMultiplayerSession::AnnounceMultiplayerLoop() { UpdateBackendData(room); Common::WebResult result = backend->Update(); if (result.result_code != Common::WebResult::Code::Success) { - std::lock_guard lock(callback_mutex); + std::lock_guard lock(callback_mutex); for (auto callback : error_callbacks) { (*callback)(result); } diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp index b932f9d6c..edd233ae4 100644 --- a/src/core/frontend/emu_window.cpp +++ b/src/core/frontend/emu_window.cpp @@ -28,7 +28,7 @@ private: explicit Device(std::weak_ptr&& touch_state) : touch_state(touch_state) {} std::tuple GetStatus() const override { if (auto state = touch_state.lock()) { - std::lock_guard guard(state->mutex); + std::lock_guard guard{state->mutex}; return std::make_tuple(state->touch_x, state->touch_y, state->touch_pressed); } return std::make_tuple(0.0f, 0.0f, false); @@ -98,7 +98,7 @@ void EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) { if (Settings::values.toggle_3d && framebuffer_x >= framebuffer_layout.width / 2) framebuffer_x -= framebuffer_layout.width / 2; - std::lock_guard guard(touch_state->mutex); + std::lock_guard guard(touch_state->mutex); if (Settings::values.toggle_3d) { touch_state->touch_x = static_cast(framebuffer_x - framebuffer_layout.bottom_screen.left / 2) / @@ -117,7 +117,7 @@ void EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) { } void EmuWindow::TouchReleased() { - std::lock_guard guard(touch_state->mutex); + std::lock_guard guard{touch_state->mutex}; touch_state->touch_pressed = false; touch_state->touch_x = 0; touch_state->touch_y = 0; diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 3a5b60654..e8c8c32ec 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -1575,7 +1575,7 @@ void SVC::CallSVC(u32 immediate) { MICROPROFILE_SCOPE(Kernel_SVC); // Lock the global kernel mutex when we enter the kernel HLE. - std::lock_guard lock(HLE::g_hle_lock); + std::lock_guard lock{HLE::g_hle_lock}; DEBUG_ASSERT_MSG(kernel.GetCurrentProcess()->status == ProcessStatus::Running, "Running threads from exiting processes is unimplemented"); diff --git a/src/core/hle/service/nwm/nwm_uds.cpp b/src/core/hle/service/nwm/nwm_uds.cpp index d8bad3686..b64d0b396 100644 --- a/src/core/hle/service/nwm/nwm_uds.cpp +++ b/src/core/hle/service/nwm/nwm_uds.cpp @@ -41,7 +41,7 @@ constexpr u16 BroadcastNetworkNodeId = 0xFFFF; constexpr u16 HostDestNodeId = 1; std::list NWM_UDS::GetReceivedBeacons(const MacAddress& sender) { - std::lock_guard lock(beacon_mutex); + std::lock_guard lock(beacon_mutex); if (sender != Network::BroadcastMac) { std::list filtered_list; const auto beacon = std::find_if(received_beacons.begin(), received_beacons.end(), @@ -107,7 +107,7 @@ void NWM_UDS::BroadcastNodeMap() { } void NWM_UDS::HandleNodeMapPacket(const Network::WifiPacket& packet) { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status == static_cast(NetworkStatus::ConnectedAsHost)) { LOG_DEBUG(Service_NWM, "Ignored NodeMapPacket since connection_status is host"); return; @@ -129,7 +129,7 @@ void NWM_UDS::HandleNodeMapPacket(const Network::WifiPacket& packet) { } void NWM_UDS::HandleBeaconFrame(const Network::WifiPacket& packet) { - std::lock_guard lock(beacon_mutex); + std::lock_guard lock(beacon_mutex); const auto unique_beacon = std::find_if(received_beacons.begin(), received_beacons.end(), [&packet](const Network::WifiPacket& new_packet) { @@ -153,7 +153,7 @@ void NWM_UDS::HandleAssociationResponseFrame(const Network::WifiPacket& packet) ASSERT_MSG(std::get(assoc_result) == AssocStatus::Successful, "Could not join network"); { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::Connecting)) { LOG_DEBUG(Service_NWM, "Ignored AssociationResponseFrame because connection status is {}", @@ -175,8 +175,8 @@ void NWM_UDS::HandleAssociationResponseFrame(const Network::WifiPacket& packet) } void NWM_UDS::HandleEAPoLPacket(const Network::WifiPacket& packet) { - std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); - std::unique_lock lock(connection_status_mutex, std::defer_lock); + std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); + std::unique_lock lock(connection_status_mutex, std::defer_lock); std::lock(hle_lock, lock); if (GetEAPoLFrameType(packet.data) == EAPoLStartMagic) { @@ -295,8 +295,8 @@ void NWM_UDS::HandleEAPoLPacket(const Network::WifiPacket& packet) { void NWM_UDS::HandleSecureDataPacket(const Network::WifiPacket& packet) { auto secure_data = ParseSecureDataHeader(packet.data); - std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); - std::unique_lock lock(connection_status_mutex, std::defer_lock); + std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); + std::unique_lock lock(connection_status_mutex, std::defer_lock); std::lock(hle_lock, lock); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost) && @@ -358,7 +358,7 @@ void NWM_UDS::StartConnectionSequence(const MacAddress& server) { using Network::WifiPacket; WifiPacket auth_request; { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); connection_status.status = static_cast(NetworkStatus::Connecting); // TODO(Subv): Handle timeout. @@ -378,7 +378,7 @@ void NWM_UDS::SendAssociationResponseFrame(const MacAddress& address) { WifiPacket assoc_response; { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost)) { LOG_ERROR(Service_NWM, "Connection sequence aborted, because connection status is {}", connection_status.status); @@ -404,7 +404,7 @@ void NWM_UDS::HandleAuthenticationFrame(const Network::WifiPacket& packet) { using Network::WifiPacket; WifiPacket auth_request; { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost)) { LOG_ERROR(Service_NWM, "Connection sequence aborted, because connection status is {}", @@ -438,8 +438,8 @@ void NWM_UDS::HandleAuthenticationFrame(const Network::WifiPacket& packet) { void NWM_UDS::HandleDeauthenticationFrame(const Network::WifiPacket& packet) { LOG_DEBUG(Service_NWM, "called"); - std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); - std::unique_lock lock(connection_status_mutex, std::defer_lock); + std::unique_lock hle_lock(HLE::g_hle_lock, std::defer_lock); + std::unique_lock lock(connection_status_mutex, std::defer_lock); std::lock(hle_lock, lock); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost)) { LOG_ERROR(Service_NWM, "Got deauthentication frame but we are not the host"); @@ -633,7 +633,7 @@ ResultVal> NWM_UDS::Initialize( } { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); // Reset the connection status, it contains all zeros after initialization, // except for the actual status value. @@ -686,7 +686,7 @@ void NWM_UDS::GetConnectionStatus(Kernel::HLERequestContext& ctx) { rb.Push(RESULT_SUCCESS); { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); rb.PushRaw(connection_status); // Reset the bitmask of changed nodes after each call to this @@ -711,7 +711,7 @@ void NWM_UDS::GetNodeInformation(Kernel::HLERequestContext& ctx) { } { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); auto itr = std::find_if(node_info.begin(), node_info.end(), [network_node_id](const NodeInfo& node) { return node.network_node_id == network_node_id; @@ -770,7 +770,7 @@ void NWM_UDS::Bind(Kernel::HLERequestContext& ctx) { // Create a new event for this bind node. auto event = system.Kernel().CreateEvent(Kernel::ResetType::OneShot, "NWM::BindNodeEvent" + std::to_string(bind_node_id)); - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); ASSERT(channel_data.find(data_channel) == channel_data.end()); // TODO(B3N30): Support more than one bind node per channel. @@ -792,7 +792,7 @@ void NWM_UDS::Unbind(Kernel::HLERequestContext& ctx) { return; } - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); auto itr = std::find_if(channel_data.begin(), channel_data.end(), [bind_node_id](const auto& data) { @@ -819,7 +819,7 @@ ResultCode NWM_UDS::BeginHostingNetwork(const u8* network_info_buffer, // TODO(Subv): Store the passphrase and verify it when attempting a connection. { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); network_info = {}; std::memcpy(&network_info, network_info_buffer, network_info_size); @@ -933,7 +933,7 @@ void NWM_UDS::DestroyNetwork(Kernel::HLERequestContext& ctx) { system.CoreTiming().UnscheduleEvent(beacon_broadcast_event, 0); // Only a host can destroy - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost)) { IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(ResultCode(ErrCodes::WrongStatus, ErrorModule::UDS, ErrorSummary::InvalidState, @@ -970,7 +970,7 @@ void NWM_UDS::DisconnectNetwork(Kernel::HLERequestContext& ctx) { using Network::WifiPacket; WifiPacket deauth; { - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status == static_cast(NetworkStatus::ConnectedAsHost)) { // A real 3ds makes strange things here. We do the same u16_le tmp_node_id = connection_status.network_node_id; @@ -1027,7 +1027,7 @@ void NWM_UDS::SendTo(Kernel::HLERequestContext& ctx) { IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsClient) && connection_status.status != static_cast(NetworkStatus::ConnectedAsHost)) { rb.Push(ResultCode(ErrorDescription::NotAuthorized, ErrorModule::UDS, @@ -1091,7 +1091,7 @@ void NWM_UDS::PullPacket(Kernel::HLERequestContext& ctx) { // This size is hard coded into the uds module. We don't know the meaning yet. u32 buff_size = std::min(max_out_buff_size_aligned, 0x172) << 2; - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); if (connection_status.status != static_cast(NetworkStatus::ConnectedAsHost) && connection_status.status != static_cast(NetworkStatus::ConnectedAsClient) && connection_status.status != static_cast(NetworkStatus::ConnectedAsSpectator)) { @@ -1154,7 +1154,7 @@ void NWM_UDS::GetChannel(Kernel::HLERequestContext& ctx) { IPC::RequestParser rp(ctx, 0x1A, 0, 0); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); - std::lock_guard lock(connection_status_mutex); + std::lock_guard lock(connection_status_mutex); bool is_connected = connection_status.status != static_cast(NetworkStatus::NotConnected); u8 channel = is_connected ? network_channel : 0; diff --git a/src/core/perf_stats.cpp b/src/core/perf_stats.cpp index 7650d8ed0..8f14d1763 100644 --- a/src/core/perf_stats.cpp +++ b/src/core/perf_stats.cpp @@ -18,13 +18,13 @@ using std::chrono::microseconds; namespace Core { void PerfStats::BeginSystemFrame() { - std::lock_guard lock(object_mutex); + std::lock_guard lock{object_mutex}; frame_begin = Clock::now(); } void PerfStats::EndSystemFrame() { - std::lock_guard lock(object_mutex); + std::lock_guard lock{object_mutex}; auto frame_end = Clock::now(); accumulated_frametime += frame_end - frame_begin; @@ -35,13 +35,13 @@ void PerfStats::EndSystemFrame() { } void PerfStats::EndGameFrame() { - std::lock_guard lock(object_mutex); + std::lock_guard lock{object_mutex}; game_frames += 1; } PerfStats::Results PerfStats::GetAndResetStats(microseconds current_system_time_us) { - std::lock_guard lock(object_mutex); + std::lock_guard lock(object_mutex); const auto now = Clock::now(); // Walltime elapsed since stats were reset @@ -67,7 +67,7 @@ PerfStats::Results PerfStats::GetAndResetStats(microseconds current_system_time_ } double PerfStats::GetLastFrameTimeScale() { - std::lock_guard lock(object_mutex); + std::lock_guard lock{object_mutex}; constexpr double FRAME_LENGTH = 1.0 / GPU::SCREEN_REFRESH_RATE; return duration_cast(previous_frame_length).count() / FRAME_LENGTH; diff --git a/src/input_common/keyboard.cpp b/src/input_common/keyboard.cpp index 525fe6abc..078374be5 100644 --- a/src/input_common/keyboard.cpp +++ b/src/input_common/keyboard.cpp @@ -36,18 +36,18 @@ struct KeyButtonPair { class KeyButtonList { public: void AddKeyButton(int key_code, KeyButton* key_button) { - std::lock_guard guard(mutex); + std::lock_guard guard{mutex}; list.push_back(KeyButtonPair{key_code, key_button}); } void RemoveKeyButton(const KeyButton* key_button) { - std::lock_guard guard(mutex); + std::lock_guard guard{mutex}; list.remove_if( [key_button](const KeyButtonPair& pair) { return pair.key_button == key_button; }); } void ChangeKeyStatus(int key_code, bool pressed) { - std::lock_guard guard(mutex); + std::lock_guard guard{mutex}; for (const KeyButtonPair& pair : list) { if (pair.key_code == key_code) pair.key_button->status.store(pressed); @@ -55,7 +55,7 @@ public: } void ChangeAllKeyStatus(bool pressed) { - std::lock_guard guard(mutex); + std::lock_guard guard{mutex}; for (const KeyButtonPair& pair : list) { pair.key_button->status.store(pressed); } diff --git a/src/input_common/motion_emu.cpp b/src/input_common/motion_emu.cpp index 424a10e75..db36b6276 100644 --- a/src/input_common/motion_emu.cpp +++ b/src/input_common/motion_emu.cpp @@ -40,7 +40,7 @@ public: void Tilt(int x, int y) { auto mouse_move = Common::MakeVec(x, y) - mouse_origin; if (is_tilting) { - std::lock_guard guard(tilt_mutex); + std::lock_guard guard{tilt_mutex}; if (mouse_move.x == 0 && mouse_move.y == 0) { tilt_angle = 0; } else { @@ -52,13 +52,13 @@ public: } void EndTilt() { - std::lock_guard guard(tilt_mutex); + std::lock_guard guard{tilt_mutex}; tilt_angle = 0; is_tilting = false; } std::tuple, Common::Vec3> GetStatus() { - std::lock_guard guard(status_mutex); + std::lock_guard guard{status_mutex}; return status; } @@ -95,7 +95,7 @@ private: old_q = q; { - std::lock_guard guard(tilt_mutex); + std::lock_guard guard{tilt_mutex}; // Find the quaternion describing current 3DS tilting q = Common::MakeQuaternion( @@ -117,7 +117,7 @@ private: // Update the sensor state { - std::lock_guard guard(status_mutex); + std::lock_guard guard{status_mutex}; status = std::make_tuple(gravity, angular_rate); } } diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index 0ba0fab1e..a474d27aa 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp @@ -55,22 +55,22 @@ public: : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, deleter} {} void SetButton(int button, bool value) { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; state.buttons[button] = value; } bool GetButton(int button) const { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; return state.buttons.at(button); } void SetAxis(int axis, Sint16 value) { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; state.axes[axis] = value; } float GetAxis(int axis) const { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; return state.axes.at(axis) / 32767.0f; } @@ -92,12 +92,12 @@ public: } void SetHat(int hat, Uint8 direction) { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; state.hats[hat] = direction; } bool GetHatDirection(int hat, Uint8 direction) const { - std::lock_guard lock(mutex); + std::lock_guard lock{mutex}; return (state.hats.at(hat) & direction) != 0; } /** @@ -140,7 +140,7 @@ private: * Get the nth joystick with the corresponding GUID */ std::shared_ptr SDLState::GetSDLJoystickByGUID(const std::string& guid, int port) { - std::lock_guard lock(joystick_map_mutex); + std::lock_guard lock{joystick_map_mutex}; const auto it = joystick_map.find(guid); if (it != joystick_map.end()) { while (it->second.size() <= port) { @@ -161,7 +161,8 @@ std::shared_ptr SDLState::GetSDLJoystickByGUID(const std::string& g std::shared_ptr SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_id) { auto sdl_joystick = SDL_JoystickFromInstanceID(sdl_id); const std::string guid = GetGUID(sdl_joystick); - std::lock_guard lock(joystick_map_mutex); + + std::lock_guard lock{joystick_map_mutex}; auto map_it = joystick_map.find(guid); if (map_it != joystick_map.end()) { auto vec_it = std::find_if(map_it->second.begin(), map_it->second.end(), @@ -198,8 +199,9 @@ void SDLState::InitJoystick(int joystick_index) { LOG_ERROR(Input, "failed to open joystick {}", joystick_index); return; } - std::string guid = GetGUID(sdl_joystick); - std::lock_guard lock(joystick_map_mutex); + const std::string guid = GetGUID(sdl_joystick); + + std::lock_guard lock{joystick_map_mutex}; if (joystick_map.find(guid) == joystick_map.end()) { auto joystick = std::make_shared(guid, 0, sdl_joystick); joystick_map[guid].emplace_back(std::move(joystick)); @@ -221,7 +223,7 @@ void SDLState::CloseJoystick(SDL_Joystick* sdl_joystick) { std::string guid = GetGUID(sdl_joystick); std::shared_ptr joystick; { - std::lock_guard lock(joystick_map_mutex); + std::lock_guard lock{joystick_map_mutex}; // This call to guid is safe since the joystick is guaranteed to be in the map auto& joystick_guid_list = joystick_map[guid]; const auto joystick_it = @@ -274,7 +276,7 @@ void SDLState::HandleGameControllerEvent(const SDL_Event& event) { } void SDLState::CloseJoysticks() { - std::lock_guard lock(joystick_map_mutex); + std::lock_guard lock{joystick_map_mutex}; joystick_map.clear(); } diff --git a/src/input_common/udp/client.cpp b/src/input_common/udp/client.cpp index 61249ab77..887436550 100644 --- a/src/input_common/udp/client.cpp +++ b/src/input_common/udp/client.cpp @@ -165,7 +165,7 @@ void Client::OnPadData(Response::PadData data) { Common::Vec3f accel = Common::MakeVec(-data.accel.x, data.accel.y, -data.accel.z); Common::Vec3f gyro = Common::MakeVec(-data.gyro.pitch, -data.gyro.yaw, data.gyro.roll); { - std::lock_guard guard(status->update_mutex); + std::lock_guard guard(status->update_mutex); status->motion_status = {accel, gyro}; diff --git a/src/input_common/udp/udp.cpp b/src/input_common/udp/udp.cpp index 2326f024e..43691ae2c 100644 --- a/src/input_common/udp/udp.cpp +++ b/src/input_common/udp/udp.cpp @@ -15,7 +15,7 @@ class UDPTouchDevice final : public Input::TouchDevice { public: explicit UDPTouchDevice(std::shared_ptr status_) : status(std::move(status_)) {} std::tuple GetStatus() const { - std::lock_guard guard(status->update_mutex); + std::lock_guard guard(status->update_mutex); return status->touch_status; } @@ -27,7 +27,7 @@ class UDPMotionDevice final : public Input::MotionDevice { public: explicit UDPMotionDevice(std::shared_ptr status_) : status(std::move(status_)) {} std::tuple, Common::Vec3> GetStatus() const { - std::lock_guard guard(status->update_mutex); + std::lock_guard guard(status->update_mutex); return status->motion_status; } @@ -41,7 +41,7 @@ public: std::unique_ptr Create(const Common::ParamPackage& params) override { { - std::lock_guard guard(status->update_mutex); + std::lock_guard guard(status->update_mutex); status->touch_calibration.emplace(); // These default values work well for DS4 but probably not other touch inputs status->touch_calibration->min_x = params.Get("min_x", 100); diff --git a/src/network/room.cpp b/src/network/room.cpp index 6014b4360..75ba74a86 100644 --- a/src/network/room.cpp +++ b/src/network/room.cpp @@ -302,7 +302,7 @@ void Room::RoomImpl::StartLoop() { void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); if (members.size() >= room_information.member_slots) { SendRoomIsFull(event->peer); return; @@ -369,13 +369,13 @@ void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { std::string uid; { - std::lock_guard lock(verify_UID_mutex); + std::lock_guard lock(verify_UID_mutex); uid = verify_UID; } member.user_data = verify_backend->LoadUserData(uid, token); { - std::lock_guard lock(ban_list_mutex); + std::lock_guard lock(ban_list_mutex); // Check username ban if (!member.user_data.username.empty() && @@ -401,7 +401,7 @@ void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { SendStatusMessage(IdMemberJoin, member.nickname, member.user_data.username); { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); members.push_back(std::move(member)); } @@ -429,7 +429,7 @@ void Room::RoomImpl::HandleModKickPacket(const ENetEvent* event) { std::string username; { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); const auto target_member = std::find_if(members.begin(), members.end(), [&nickname](const auto& member) { return member.nickname == nickname; }); @@ -469,7 +469,7 @@ void Room::RoomImpl::HandleModBanPacket(const ENetEvent* event) { std::string ip; { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); const auto target_member = std::find_if(members.begin(), members.end(), [&nickname](const auto& member) { return member.nickname == nickname; }); @@ -493,7 +493,7 @@ void Room::RoomImpl::HandleModBanPacket(const ENetEvent* event) { } { - std::lock_guard lock(ban_list_mutex); + std::lock_guard lock(ban_list_mutex); if (!username.empty()) { // Ban the forum username @@ -530,7 +530,7 @@ void Room::RoomImpl::HandleModUnbanPacket(const ENetEvent* event) { bool unbanned = false; { - std::lock_guard lock(ban_list_mutex); + std::lock_guard lock(ban_list_mutex); auto it = std::find(username_ban_list.begin(), username_ban_list.end(), address); if (it != username_ban_list.end()) { @@ -568,28 +568,28 @@ bool Room::RoomImpl::IsValidNickname(const std::string& nickname) const { if (!std::regex_match(nickname, nickname_regex)) return false; - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); return std::all_of(members.begin(), members.end(), [&nickname](const auto& member) { return member.nickname != nickname; }); } bool Room::RoomImpl::IsValidMacAddress(const MacAddress& address) const { // A MAC address is valid if it is not already taken by anybody else in the room. - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); return std::all_of(members.begin(), members.end(), [&address](const auto& member) { return member.mac_address != address; }); } bool Room::RoomImpl::IsValidConsoleId(const std::string& console_id_hash) const { // A Console ID is valid if it is not already taken by anybody else in the room. - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); return std::all_of(members.begin(), members.end(), [&console_id_hash](const auto& member) { return member.console_id_hash != console_id_hash; }); } bool Room::RoomImpl::HasModPermission(const ENetPeer* client) const { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); const auto sending_member = std::find_if(members.begin(), members.end(), [client](const auto& member) { return member.peer == client; }); @@ -734,7 +734,7 @@ void Room::RoomImpl::SendModBanListResponse(ENetPeer* client) { Packet packet; packet << static_cast(IdModBanListResponse); { - std::lock_guard lock(ban_list_mutex); + std::lock_guard lock(ban_list_mutex); packet << username_ban_list; packet << ip_ban_list; } @@ -748,7 +748,7 @@ void Room::RoomImpl::SendModBanListResponse(ENetPeer* client) { void Room::RoomImpl::SendCloseMessage() { Packet packet; packet << static_cast(IdCloseRoom); - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); if (!members.empty()) { ENetPacket* enet_packet = enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); @@ -769,7 +769,7 @@ void Room::RoomImpl::SendStatusMessage(StatusMessageTypes type, const std::strin packet << static_cast(type); packet << nickname; packet << username; - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); if (!members.empty()) { ENetPacket* enet_packet = enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); @@ -792,7 +792,7 @@ void Room::RoomImpl::BroadcastRoomInformation() { packet << static_cast(members.size()); { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); for (const auto& member : members) { packet << member.nickname; packet << member.mac_address; @@ -838,7 +838,7 @@ void Room::RoomImpl::HandleWifiPacket(const ENetEvent* event) { ENET_PACKET_FLAG_RELIABLE); if (destination_address == BroadcastMac) { // Send the data to everyone except the sender - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); bool sent_packet = false; for (const auto& member : members) { if (member.peer != event->peer) { @@ -851,7 +851,7 @@ void Room::RoomImpl::HandleWifiPacket(const ENetEvent* event) { enet_packet_destroy(enet_packet); } } else { // Send the data only to the destination client - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); auto member = std::find_if(members.begin(), members.end(), [destination_address](const Member& member) -> bool { return member.mac_address == destination_address; @@ -881,7 +881,7 @@ void Room::RoomImpl::HandleChatPacket(const ENetEvent* event) { return member.peer == event->peer; }; - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); const auto sending_member = std::find_if(members.begin(), members.end(), CompareNetworkAddress); if (sending_member == members.end()) { return; // Received a chat message from a unknown sender @@ -923,7 +923,7 @@ void Room::RoomImpl::HandleGameNamePacket(const ENetEvent* event) { in_packet >> game_info.id; { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); auto member = std::find_if(members.begin(), members.end(), [event](const Member& member) -> bool { return member.peer == event->peer; @@ -939,7 +939,7 @@ void Room::RoomImpl::HandleClientDisconnection(ENetPeer* client) { // Remove the client from the members list. std::string nickname, username; { - std::lock_guard lock(member_mutex); + std::lock_guard lock(member_mutex); auto member = std::find_if(members.begin(), members.end(), [client](const Member& member) { return member.peer == client; }); @@ -1009,18 +1009,18 @@ const RoomInformation& Room::GetRoomInformation() const { } std::string Room::GetVerifyUID() const { - std::lock_guard lock(room_impl->verify_UID_mutex); + std::lock_guard lock(room_impl->verify_UID_mutex); return room_impl->verify_UID; } Room::BanList Room::GetBanList() const { - std::lock_guard lock(room_impl->ban_list_mutex); + std::lock_guard lock(room_impl->ban_list_mutex); return {room_impl->username_ban_list, room_impl->ip_ban_list}; } std::vector Room::GetRoomMemberList() const { std::vector member_list; - std::lock_guard lock(room_impl->member_mutex); + std::lock_guard lock(room_impl->member_mutex); for (const auto& member_impl : room_impl->members) { Member member; member.nickname = member_impl.nickname; @@ -1039,7 +1039,7 @@ bool Room::HasPassword() const { } void Room::SetVerifyUID(const std::string& uid) { - std::lock_guard lock(room_impl->verify_UID_mutex); + std::lock_guard lock(room_impl->verify_UID_mutex); room_impl->verify_UID = uid; } @@ -1054,7 +1054,7 @@ void Room::Destroy() { room_impl->room_information = {}; room_impl->server = nullptr; { - std::lock_guard lock(room_impl->member_mutex); + std::lock_guard lock(room_impl->member_mutex); room_impl->members.clear(); } room_impl->room_information.member_slots = 0; diff --git a/src/network/room_member.cpp b/src/network/room_member.cpp index 8a846ee04..5814fe12a 100644 --- a/src/network/room_member.cpp +++ b/src/network/room_member.cpp @@ -157,7 +157,7 @@ bool RoomMember::RoomMemberImpl::IsConnected() const { void RoomMember::RoomMemberImpl::MemberLoop() { // Receive packets while the connection is open while (IsConnected()) { - std::lock_guard lock(network_mutex); + std::lock_guard lock(network_mutex); ENetEvent event; if (enet_host_service(client, &event, 100) > 0) { switch (event.type) { @@ -245,7 +245,7 @@ void RoomMember::RoomMemberImpl::MemberLoop() { } } { - std::lock_guard lock(send_list_mutex); + std::lock_guard lock(send_list_mutex); for (const auto& packet : send_list) { ENetPacket* enetPacket = enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE); @@ -263,7 +263,7 @@ void RoomMember::RoomMemberImpl::StartLoop() { } void RoomMember::RoomMemberImpl::Send(Packet&& packet) { - std::lock_guard lock(send_list_mutex); + std::lock_guard lock(send_list_mutex); send_list.push_back(std::move(packet)); } @@ -318,7 +318,7 @@ void RoomMember::RoomMemberImpl::HandleRoomInformationPacket(const ENetEvent* ev packet >> member.avatar_url; { - std::lock_guard lock(username_mutex); + std::lock_guard lock(username_mutex); if (member.nickname == nickname) { username = member.username; } @@ -473,7 +473,7 @@ RoomMember::RoomMemberImpl::Callbacks::Get() { template void RoomMember::RoomMemberImpl::Invoke(const T& data) { - std::lock_guard lock(callback_mutex); + std::lock_guard lock(callback_mutex); CallbackSet callback_set = callbacks.Get(); for (auto const& callback : callback_set) (*callback)(data); @@ -482,7 +482,7 @@ void RoomMember::RoomMemberImpl::Invoke(const T& data) { template RoomMember::CallbackHandle RoomMember::RoomMemberImpl::Bind( std::function callback) { - std::lock_guard lock(callback_mutex); + std::lock_guard lock(callback_mutex); CallbackHandle handle; handle = std::make_shared>(callback); callbacks.Get().insert(handle); @@ -512,7 +512,7 @@ const std::string& RoomMember::GetNickname() const { } const std::string& RoomMember::GetUsername() const { - std::lock_guard lock(room_member_impl->username_mutex); + std::lock_guard lock(room_member_impl->username_mutex); return room_member_impl->username; } @@ -663,7 +663,7 @@ RoomMember::CallbackHandle RoomMember::BindOnBanListReceived( template void RoomMember::Unbind(CallbackHandle handle) { - std::lock_guard lock(room_member_impl->callback_mutex); + std::lock_guard lock(room_member_impl->callback_mutex); room_member_impl->callbacks.Get().erase(handle); } diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp index a392feb89..24ec152f2 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp @@ -43,7 +43,7 @@ namespace Pica { void DebugContext::DoOnEvent(Event event, void* data) { { - std::unique_lock lock(breakpoint_mutex); + std::unique_lock lock{breakpoint_mutex}; // Commit the rasterizer's caches so framebuffers, render targets, etc. will show on debug // widgets @@ -66,7 +66,7 @@ void DebugContext::DoOnEvent(Event event, void* data) { void DebugContext::Resume() { { - std::lock_guard lock(breakpoint_mutex); + std::lock_guard lock{breakpoint_mutex}; // Tell all observers that we are about to resume for (auto& breakpoint_observer : breakpoint_observers) { @@ -282,14 +282,14 @@ void StartPicaTracing() { return; } - std::lock_guard lock(pica_trace_mutex); + std::lock_guard lock(pica_trace_mutex); pica_trace = std::make_unique(); g_is_pica_tracing = true; } void OnPicaRegWrite(PicaTrace::Write write) { - std::lock_guard lock(pica_trace_mutex); + std::lock_guard lock(pica_trace_mutex); if (!g_is_pica_tracing) return; @@ -307,7 +307,7 @@ std::unique_ptr FinishPicaTracing() { g_is_pica_tracing = false; // Wait until running tracing is finished - std::lock_guard lock(pica_trace_mutex); + std::lock_guard lock(pica_trace_mutex); std::unique_ptr ret(std::move(pica_trace)); return ret; diff --git a/src/video_core/debug_utils/debug_utils.h b/src/video_core/debug_utils/debug_utils.h index def3b1af8..11c22e333 100644 --- a/src/video_core/debug_utils/debug_utils.h +++ b/src/video_core/debug_utils/debug_utils.h @@ -63,14 +63,14 @@ public: /// Constructs the object such that it observes events of the given DebugContext. BreakPointObserver(std::shared_ptr debug_context) : context_weak(debug_context) { - std::unique_lock lock(debug_context->breakpoint_mutex); + std::unique_lock lock{debug_context->breakpoint_mutex}; debug_context->breakpoint_observers.push_back(this); } virtual ~BreakPointObserver() { auto context = context_weak.lock(); if (context) { - std::unique_lock lock(context->breakpoint_mutex); + std::unique_lock lock(context->breakpoint_mutex); context->breakpoint_observers.remove(this); // If we are the last observer to be destroyed, tell the debugger context that diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp index 453c96574..6683f459f 100644 --- a/src/web_service/web_backend.cpp +++ b/src/web_service/web_backend.cpp @@ -26,7 +26,7 @@ constexpr std::size_t TIMEOUT_SECONDS = 30; struct Client::Impl { Impl(std::string host, std::string username, std::string token) : host{std::move(host)}, username{std::move(username)}, token{std::move(token)} { - std::lock_guard lock(jwt_cache.mutex); + std::lock_guard lock{jwt_cache.mutex}; if (this->username == jwt_cache.username && this->token == jwt_cache.token) { jwt = jwt_cache.jwt; } @@ -154,7 +154,7 @@ struct Client::Impl { if (result.result_code != Common::WebResult::Code::Success) { LOG_ERROR(WebService, "UpdateJWT failed"); } else { - std::lock_guard lock(jwt_cache.mutex); + std::lock_guard lock{jwt_cache.mutex}; jwt_cache.username = username; jwt_cache.token = token; jwt_cache.jwt = jwt = result.returned_data;