diff options
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/MRA/src/Mra_proto.cpp | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/protocols/MRA/src/Mra_proto.cpp b/protocols/MRA/src/Mra_proto.cpp index 4191017bd8..4fdcebcf40 100644 --- a/protocols/MRA/src/Mra_proto.cpp +++ b/protocols/MRA/src/Mra_proto.cpp @@ -8,10 +8,6 @@ DWORD CMraProto::StartConnect()  	if (!g_dwGlobalPluginRunning)
  		return ERROR_OPERATION_ABORTED;
 -	// поток ещё/уже не работал, поставили статус что работает и запускаем
 -	if (InterlockedCompareExchange((volatile LONG*)&m_dwThreadWorkerRunning, TRUE, FALSE))
 -		return 0;
 -
  	CMStringA szEmail;
  	mraGetStringA(NULL, "e-mail", szEmail);
 @@ -21,10 +17,14 @@ DWORD CMraProto::StartConnect()  	else if (!GetPassDB(szPass))
  		MraPopupShowFromAgentW(MRA_POPUP_TYPE_WARNING, 0, TranslateT("Please, setup password in options"));
  	else {
 +		// поток ещё/уже не работал, поставили статус что работает и запускаем
 +		if (InterlockedCompareExchange((volatile LONG*)&m_dwThreadWorkerRunning, TRUE, FALSE))
 +			return 0;
  		InterlockedExchange((volatile LONG*)&m_dwThreadWorkerLastPingTime, GetTickCount());
  		ForkThreadEx(&CMraProto::MraThreadProc, NULL, 0);
 +		return 0;
  	}
 -	return 0;
 +	return ERROR_OPERATION_ABORTED;
  }
  void CMraProto::MraThreadProc(LPVOID lpParameter)
  | 
