diff options
-rw-r--r-- | protocols/Steam/src/steam_proto.cpp | 4 | ||||
-rw-r--r-- | protocols/Steam/src/steam_proto.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/protocols/Steam/src/steam_proto.cpp b/protocols/Steam/src/steam_proto.cpp index 1cd0193702..2cb802c9fd 100644 --- a/protocols/Steam/src/steam_proto.cpp +++ b/protocols/Steam/src/steam_proto.cpp @@ -9,6 +9,7 @@ CSteamProto::CSteamProto(const char* protoName, const TCHAR* userName) : CreateProtoService(PS_CREATEACCMGRUI, &CSteamProto::OnAccountManagerInit); InitializeCriticalSection(&this->contact_search_lock); + InitializeCriticalSection(&this->set_status_lock); InitQueue(); @@ -69,6 +70,7 @@ CSteamProto::~CSteamProto() UninitQueue(); DeleteCriticalSection(&this->contact_search_lock); + DeleteCriticalSection(&this->set_status_lock); } MCONTACT __cdecl CSteamProto::AddToList(int flags, PROTOSEARCHRESULT* psr) @@ -350,6 +352,8 @@ int __cdecl CSteamProto::SetApparentMode(MCONTACT hContact, int mode) { return 0 int CSteamProto::SetStatus(int new_status) { + mir_cslock lock(set_status_lock); + // Routing statuses not supported by Steam switch (new_status) { diff --git a/protocols/Steam/src/steam_proto.h b/protocols/Steam/src/steam_proto.h index 47fe830eef..d3c5b65b0a 100644 --- a/protocols/Steam/src/steam_proto.h +++ b/protocols/Steam/src/steam_proto.h @@ -153,6 +153,7 @@ protected: ULONG hMessageProcess; CRITICAL_SECTION contact_search_lock; CRITICAL_SECTION requests_queue_lock; + CRITICAL_SECTION set_status_lock; LIST<QueueItem> requestsQueue; // instances |