summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/am/applet_message_queue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/am/applet_message_queue.cpp')
-rw-r--r--src/core/hle/service/am/applet_message_queue.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/hle/service/am/applet_message_queue.cpp b/src/core/hle/service/am/applet_message_queue.cpp
index e4931031d..5ed996b70 100644
--- a/src/core/hle/service/am/applet_message_queue.cpp
+++ b/src/core/hle/service/am/applet_message_queue.cpp
@@ -26,11 +26,15 @@ Kernel::KReadableEvent& AppletMessageQueue::GetOperationModeChangedEvent() {
}
void AppletMessageQueue::PushMessage(AppletMessage msg) {
- messages.push(msg);
+ {
+ std::scoped_lock lk{lock};
+ messages.push(msg);
+ }
on_new_message->Signal();
}
AppletMessageQueue::AppletMessage AppletMessageQueue::PopMessage() {
+ std::scoped_lock lk{lock};
if (messages.empty()) {
on_new_message->Clear();
return AppletMessage::None;
@@ -44,6 +48,7 @@ AppletMessageQueue::AppletMessage AppletMessageQueue::PopMessage() {
}
std::size_t AppletMessageQueue::GetMessageCount() const {
+ std::scoped_lock lk{lock};
return messages.size();
}