diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2015-05-11 11:20:18 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2015-05-11 11:20:18 +0000 |
commit | b86e3b7cd68112b06c2a54be9fb262d45a65833a (patch) | |
tree | eaf5598db4eadb6f8fada65019d51ae650a39c65 | |
parent | e6040d454c758e72333132dc05ee72d910b78bed (diff) |
minus critical section
git-svn-id: http://svn.miranda-ng.org/main/trunk@13524 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | protocols/Tlen/src/tlen.h | 11 | ||||
-rw-r--r-- | protocols/Tlen/src/tlen_iq.cpp | 14 | ||||
-rw-r--r-- | protocols/Tlen/src/tlen_list.cpp | 47 | ||||
-rw-r--r-- | protocols/Tlen/src/tlen_presence.cpp | 4 | ||||
-rw-r--r-- | protocols/Tlen/src/tlen_svc.cpp | 10 | ||||
-rw-r--r-- | protocols/Tlen/src/tlen_util.cpp | 13 |
6 files changed, 25 insertions, 74 deletions
diff --git a/protocols/Tlen/src/tlen.h b/protocols/Tlen/src/tlen.h index 7e0a43759b..4e6d281214 100644 --- a/protocols/Tlen/src/tlen.h +++ b/protocols/Tlen/src/tlen.h @@ -309,19 +309,19 @@ struct TlenProtocol : public PROTO<TlenProtocol> int listsCount;
struct TLEN_LIST_ITEM_STRUCT *lists;
- CRITICAL_SECTION csLists;
+ mir_cs csLists;
int iqCount;
int iqAlloced;
struct TLEN_IQ_FUNC_STRUCT *iqList;
- CRITICAL_SECTION csIqList;
+ mir_cs csIqList;
- CRITICAL_SECTION csSerial;
+ mir_cs csSerial;
unsigned int serial;
BOOL isOnline;
BOOL isConnected;
- CRITICAL_SECTION modeMsgMutex;
+ mir_cs modeMsgMutex;
void initMenuItems();
HGENMENU hMenuRoot;
@@ -332,7 +332,7 @@ struct TlenProtocol : public PROTO<TlenProtocol> char *searchQuery;
int searchQueryLen;
- CRITICAL_SECTION csSend;
+ mir_cs csSend;
HWND voiceDlgHWND;
struct TLEN_VOICE_CONTROL_STRUCT *playbackControl;
@@ -455,7 +455,6 @@ int TlenWsRecvAES(TlenProtocol *proto, char *data, long datalen, aes_context *ae // tlen_util.cpp
void TlenSerialInit(TlenProtocol *proto);
-void TlenSerialUninit(TlenProtocol *proto);
unsigned int TlenSerialNext(TlenProtocol *proto);
int TlenSend(TlenProtocol *proto, const char *fmt, ...);
MCONTACT TlenHContactFromJID(TlenProtocol *proto, const char *jid);
diff --git a/protocols/Tlen/src/tlen_iq.cpp b/protocols/Tlen/src/tlen_iq.cpp index 1f2ec5a410..84440d19ed 100644 --- a/protocols/Tlen/src/tlen_iq.cpp +++ b/protocols/Tlen/src/tlen_iq.cpp @@ -26,7 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. void TlenIqInit(TlenProtocol *proto)
{
- InitializeCriticalSection(&proto->csIqList);
proto->iqList = NULL;
proto->iqCount = 0;
proto->iqAlloced = 0;
@@ -38,17 +37,15 @@ void TlenIqUninit(TlenProtocol *proto) proto->iqList = NULL;
proto->iqCount = 0;
proto->iqAlloced = 0;
- DeleteCriticalSection(&proto->csIqList);
}
static void TlenIqRemove(TlenProtocol *proto, int index)
{
- EnterCriticalSection(&proto->csIqList);
+ mir_cslock lck(proto->csIqList);
if (index >= 0 && index<proto->iqCount) {
memmove(proto->iqList+index, proto->iqList+index+1, sizeof(TLEN_IQ_FUNC)*(proto->iqCount-index-1));
proto->iqCount--;
}
- LeaveCriticalSection(&proto->csIqList);
}
static void TlenIqExpire(TlenProtocol *proto)
@@ -56,7 +53,7 @@ static void TlenIqExpire(TlenProtocol *proto) int i;
time_t expire;
- EnterCriticalSection(&proto->csIqList);
+ mir_cslock lck(proto->csIqList);
expire = time(NULL) - 120; // 2 minute
i = 0;
while (i < proto->iqCount) {
@@ -65,7 +62,6 @@ static void TlenIqExpire(TlenProtocol *proto) else
i++;
}
- LeaveCriticalSection(&proto->csIqList);
}
TLEN_IQ_PFUNC TlenIqFetchFunc(TlenProtocol *proto, int iqId)
@@ -73,7 +69,7 @@ TLEN_IQ_PFUNC TlenIqFetchFunc(TlenProtocol *proto, int iqId) int i;
TLEN_IQ_PFUNC res;
- EnterCriticalSection(&proto->csIqList);
+ mir_cslock lck(proto->csIqList);
TlenIqExpire(proto);
for (i=0; i<proto->iqCount && proto->iqList[i].iqId != iqId; i++);
if (i < proto->iqCount) {
@@ -83,7 +79,6 @@ TLEN_IQ_PFUNC TlenIqFetchFunc(TlenProtocol *proto, int iqId) else {
res = (TLEN_IQ_PFUNC) NULL;
}
- LeaveCriticalSection(&proto->csIqList);
return res;
}
@@ -91,7 +86,7 @@ void TlenIqAdd(TlenProtocol *proto, unsigned int iqId, TLEN_IQ_PROCID procId, TL {
int i;
- EnterCriticalSection(&proto->csIqList);
+ mir_cslock lck(proto->csIqList);
if (procId == IQ_PROC_NONE)
i = proto->iqCount;
else
@@ -109,6 +104,5 @@ void TlenIqAdd(TlenProtocol *proto, unsigned int iqId, TLEN_IQ_PROCID procId, TL proto->iqList[i].requestTime = time(NULL);
if (i == proto->iqCount) proto->iqCount++;
}
- LeaveCriticalSection(&proto->csIqList);
}
diff --git a/protocols/Tlen/src/tlen_list.cpp b/protocols/Tlen/src/tlen_list.cpp index ee6b5820da..ddd31b3340 100644 --- a/protocols/Tlen/src/tlen_list.cpp +++ b/protocols/Tlen/src/tlen_list.cpp @@ -31,20 +31,18 @@ void TlenListInit(TlenProtocol *proto) {
proto->lists = NULL;
proto->listsCount = 0;
- InitializeCriticalSection(&proto->csLists);
}
void TlenListUninit(TlenProtocol *proto)
{
TlenListWipe(proto);
- DeleteCriticalSection(&proto->csLists);
}
void TlenListWipe(TlenProtocol *proto)
{
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
for (i=0; i<proto->listsCount; i++)
TlenListFreeItemInternal(&(proto->lists[i]));
if (proto->lists != NULL) {
@@ -52,13 +50,12 @@ void TlenListWipe(TlenProtocol *proto) proto->lists = NULL;
}
proto->listsCount=0;
- LeaveCriticalSection(&proto->csLists);
}
void TlenListWipeSpecial(TlenProtocol *proto)
{
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
for (i=0; i<proto->listsCount; i++) {
if (proto->lists[i].list != LIST_FILE && proto->lists[i].list != LIST_VOICE) {
TlenListFreeItemInternal(&(proto->lists[i]));
@@ -68,7 +65,6 @@ void TlenListWipeSpecial(TlenProtocol *proto) }
}
proto->lists = (TLEN_LIST_ITEM *) mir_realloc(proto->lists, sizeof(TLEN_LIST_ITEM)*proto->listsCount);
- LeaveCriticalSection(&proto->csLists);
}
static void TlenListFreeItemInternal(TLEN_LIST_ITEM *item)
@@ -117,17 +113,15 @@ int TlenListExist(TlenProtocol *proto, TLEN_LIST list, const char *jid) s = GetItemId(list, jid);
len = strlen(s);
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
for (i=0; i<proto->listsCount; i++)
if (proto->lists[i].list == list) {
p = proto->lists[i].jid;
if (p && strlen(p) >= len && (p[(int)len] == '\0' || p[(int)len] == '/') && !strncmp(p, s, len)) {
- LeaveCriticalSection(&proto->csLists);
mir_free(s);
return i+1;
}
}
- LeaveCriticalSection(&proto->csLists);
mir_free(s);
return 0;
}
@@ -137,9 +131,8 @@ TLEN_LIST_ITEM *TlenListAdd(TlenProtocol *proto, TLEN_LIST list, const char *jid char *s;
TLEN_LIST_ITEM *item;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
if ((item=TlenListGetItemPtr(proto, list, jid)) != NULL) {
- LeaveCriticalSection(&proto->csLists);
return item;
}
@@ -168,7 +161,6 @@ TLEN_LIST_ITEM *TlenListAdd(TlenProtocol *proto, TLEN_LIST list, const char *jid item->versionRequested = FALSE;
item->infoRequested = FALSE;
proto->listsCount++;
- LeaveCriticalSection(&proto->csLists);
return item;
}
@@ -177,10 +169,9 @@ void TlenListRemove(TlenProtocol *proto, TLEN_LIST list, const char *jid) {
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
i = TlenListExist(proto, list, jid);
if (!i) {
- LeaveCriticalSection(&proto->csLists);
return;
}
i--;
@@ -188,7 +179,6 @@ void TlenListRemove(TlenProtocol *proto, TLEN_LIST list, const char *jid) proto->listsCount--;
memmove(proto->lists+i, proto->lists+i+1, sizeof(TLEN_LIST_ITEM)*(proto->listsCount-i));
proto->lists = (TLEN_LIST_ITEM *) mir_realloc(proto->lists, sizeof(TLEN_LIST_ITEM)*proto->listsCount);
- LeaveCriticalSection(&proto->csLists);
}
void TlenListRemoveList(TlenProtocol *proto, TLEN_LIST list)
@@ -203,24 +193,22 @@ void TlenListRemoveList(TlenProtocol *proto, TLEN_LIST list) void TlenListRemoveByIndex(TlenProtocol *proto, int index)
{
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
if (index >= 0 && index<proto->listsCount) {
TlenListFreeItemInternal(&(proto->lists[index]));
proto->listsCount--;
memmove(proto->lists+index, proto->lists+index+1, sizeof(TLEN_LIST_ITEM)*(proto->listsCount-index));
proto->lists = (TLEN_LIST_ITEM *) mir_realloc(proto->lists, sizeof(TLEN_LIST_ITEM)*proto->listsCount);
}
- LeaveCriticalSection(&proto->csLists);
}
void TlenListAddResource(TlenProtocol *proto, TLEN_LIST list, const char *jid, int status, const char *statusMessage)
{
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
i = TlenListExist(proto, list, jid);
if (!i) {
- LeaveCriticalSection(&proto->csLists);
return;
}
i--;
@@ -231,34 +219,29 @@ void TlenListAddResource(TlenProtocol *proto, TLEN_LIST list, const char *jid, i proto->lists[i].statusMessage = mir_strdup(statusMessage);
else
proto->lists[i].statusMessage = NULL;
- LeaveCriticalSection(&proto->csLists);
}
void TlenListRemoveResource(TlenProtocol *proto, TLEN_LIST list, const char *jid)
{
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
i = TlenListExist(proto, list, jid);
if (!i) {
- LeaveCriticalSection(&proto->csLists);
return;
}
i--;
- LeaveCriticalSection(&proto->csLists);
}
int TlenListFindNext(TlenProtocol *proto, TLEN_LIST list, int fromOffset)
{
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
i = (fromOffset >= 0) ? fromOffset : 0;
for (; i<proto->listsCount; i++)
if (proto->lists[i].list == list) {
- LeaveCriticalSection(&proto->csLists);
return i;
}
- LeaveCriticalSection(&proto->csLists);
return -1;
}
@@ -266,14 +249,12 @@ TLEN_LIST_ITEM *TlenListGetItemPtr(TlenProtocol *proto, TLEN_LIST list, const ch {
int i;
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
i = TlenListExist(proto, list, jid);
if (!i) {
- LeaveCriticalSection(&proto->csLists);
return NULL;
}
i--;
- LeaveCriticalSection(&proto->csLists);
return &(proto->lists[i]);
}
@@ -286,30 +267,26 @@ TLEN_LIST_ITEM *TlenListFindItemPtrById2(TlenProtocol *proto, TLEN_LIST list, co len = strlen(id);
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
for (i=0; i<proto->listsCount; i++) {
if (proto->lists[i].list == list) {
p = proto->lists[i].id2;
if (p != NULL) {
if (!strncmp(p, id, len)) {
- LeaveCriticalSection(&proto->csLists);
return &(proto->lists[i]);
}
}
}
}
- LeaveCriticalSection(&proto->csLists);
return NULL;
}
TLEN_LIST_ITEM *TlenListGetItemPtrFromIndex(TlenProtocol *proto, int index)
{
- EnterCriticalSection(&proto->csLists);
+ mir_cslock lck(proto->csLists);
if (index >= 0 && index<proto->listsCount) {
- LeaveCriticalSection(&proto->csLists);
return &(proto->lists[index]);
}
- LeaveCriticalSection(&proto->csLists);
return NULL;
}
diff --git a/protocols/Tlen/src/tlen_presence.cpp b/protocols/Tlen/src/tlen_presence.cpp index 3f4785206e..e9e4b11fe7 100644 --- a/protocols/Tlen/src/tlen_presence.cpp +++ b/protocols/Tlen/src/tlen_presence.cpp @@ -203,7 +203,7 @@ static void TlenSendPresenceTo(TlenProtocol *proto, int status, char *to) // Send <presence/> update for status (we won't handle ID_STATUS_OFFLINE here) // Note: tlenModeMsg is already encoded using TlenTextEncode() - EnterCriticalSection(&proto->modeMsgMutex); + mir_cslock lck(proto->modeMsgMutex); showBody = NULL; statusMsg = NULL; @@ -309,8 +309,6 @@ static void TlenSendPresenceTo(TlenProtocol *proto, int status, char *to) } setOwnStatusOnCList(proto, proto->m_iStatus, statusMsg); - - LeaveCriticalSection(&proto->modeMsgMutex); } diff --git a/protocols/Tlen/src/tlen_svc.cpp b/protocols/Tlen/src/tlen_svc.cpp index 3ae3ed75e6..96e20cdc21 100644 --- a/protocols/Tlen/src/tlen_svc.cpp +++ b/protocols/Tlen/src/tlen_svc.cpp @@ -420,7 +420,7 @@ int TlenProtocol::SetAwayMsg(int iStatus, const PROTOCHAR* msg) debugLogA("SetAwayMsg called, wParam=%d lParam=%s", iStatus, newModeMsg);
- EnterCriticalSection(&modeMsgMutex);
+ mir_cslock lck(modeMsgMutex);
switch (iStatus) {
case ID_STATUS_ONLINE:
@@ -445,7 +445,6 @@ int TlenProtocol::SetAwayMsg(int iStatus, const PROTOCHAR* msg) szMsg = &modeMsgs.szInvisible;
break;
default:
- LeaveCriticalSection(&modeMsgMutex);
return 1;
}
@@ -464,7 +463,6 @@ int TlenProtocol::SetAwayMsg(int iStatus, const PROTOCHAR* msg) }
}
- LeaveCriticalSection(&modeMsgMutex);
return 0;
}
@@ -1222,9 +1220,6 @@ TlenProtocol::TlenProtocol( const char *aProtoName, const TCHAR *aUserName) : {
TlenInitServicesVTbl(this);
- InitializeCriticalSection(&modeMsgMutex);
- InitializeCriticalSection(&csSend);
-
hTlenNudge = CreateProtoEvent("/Nudge");
HookProtoEvent(ME_OPT_INITIALISE, &TlenProtocol::OptionsInit);
@@ -1261,9 +1256,6 @@ TlenProtocol::~TlenProtocol() DestroyHookableEvent(hTlenNudge);
TlenListUninit(this);
TlenIqUninit(this);
- TlenSerialUninit(this);
- DeleteCriticalSection(&modeMsgMutex);
- DeleteCriticalSection(&csSend);
TlenWsUninit(this);
mir_free(modeMsgs.szOnline);
diff --git a/protocols/Tlen/src/tlen_util.cpp b/protocols/Tlen/src/tlen_util.cpp index 981c6da6fb..228f8dae8e 100644 --- a/protocols/Tlen/src/tlen_util.cpp +++ b/protocols/Tlen/src/tlen_util.cpp @@ -28,24 +28,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. void TlenSerialInit(TlenProtocol *proto)
{
- InitializeCriticalSection(&proto->csSerial);
proto->serial = 0;
}
-void TlenSerialUninit(TlenProtocol *proto)
-{
- DeleteCriticalSection(&proto->csSerial);
-}
-
-
unsigned int TlenSerialNext(TlenProtocol *proto)
{
unsigned int ret;
- EnterCriticalSection(&proto->csSerial);
+ mir_cslock lck(proto->csSerial);
ret = proto->serial;
proto->serial++;
- LeaveCriticalSection(&proto->csSerial);
return ret;
}
@@ -58,7 +50,7 @@ int TlenSend(TlenProtocol *proto, const char *fmt, ...) va_list vararg;
int result = 0;
- EnterCriticalSection(&proto->csSend);
+ mir_cslock lck(proto->csSend);
va_start(vararg,fmt);
size = 512;
@@ -78,7 +70,6 @@ int TlenSend(TlenProtocol *proto, const char *fmt, ...) result = TlenWsSend(proto, proto->threadData->s, str, size);
}
}
- LeaveCriticalSection(&proto->csSend);
mir_free(str);
return result;
|