- Timestamp:
- Oct 8, 2002, 11:49:08 AM (23 years ago)
- Location:
- trunk/src/odincrt
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/odincrt/critsect.cpp
r9331 r9336 1 /* $Id: critsect.cpp,v 1. 6 2002-10-07 16:28:13sandervl Exp $ */1 /* $Id: critsect.cpp,v 1.7 2002-10-08 09:49:06 sandervl Exp $ */ 2 2 /* 3 3 * Critical sections in the Win32 sense … … 72 72 * DosInitializeCriticalSection 73 73 */ 74 ULONG WIN32API DosInitializeCriticalSection(CRITICAL_SECTION_OS2 *crit, PSZ pszSemName) 74 ULONG WIN32API DosInitializeCriticalSection(CRITICAL_SECTION_OS2 *crit, 75 PSZ pszSemName, BOOL fShared) 75 76 { 76 77 APIRET rc; … … 81 82 crit->OwningThread = 0; 82 83 83 rc = DosCreateEventSem(pszSemName, &crit->hmtxLock, (pszSemName ) ? DC_SEM_SHARED : 0, 0);84 rc = DosCreateEventSem(pszSemName, &crit->hmtxLock, (pszSemName || fShared) ? DC_SEM_SHARED : 0, 0); 84 85 if(rc != NO_ERROR) { 85 86 DebugInt3(); … … 87 88 return rc; 88 89 } 90 crit->CreationCount = 1; 89 91 crit->Reserved = GetCurrentProcessId(); 90 92 return NO_ERROR; … … 95 97 * DosAccessCriticalSection 96 98 */ 97 ULONG WIN32API DosAccessCriticalSection(CRITICAL_SECTION_OS2 * , PSZ pszSemName)99 ULONG WIN32API DosAccessCriticalSection(CRITICAL_SECTION_OS2 *crit, PSZ pszSemName) 98 100 { 99 101 HMTX hmtxLock = 0; 100 102 APIRET rc; 101 103 104 if(pszSemName == NULL && crit->hmtxLock == 0) { 105 DebugInt3(); 106 return ERROR_INVALID_PARAMETER; 107 } 102 108 if(pszSemName == NULL) { 103 DebugInt3(); 104 return ERROR_INVALID_PARAMETER; 109 hmtxLock = crit->hmtxLock; 105 110 } 106 111 … … 110 115 return rc; 111 116 } 117 DosInterlockedIncrement(&crit->CreationCount); 112 118 return NO_ERROR; 113 119 } … … 123 129 DebugInt3(); 124 130 } 125 crit->LockCount = -1;126 crit->RecursionCount = 0;127 crit->OwningThread = 0;128 131 DosCloseEventSem(crit->hmtxLock); 129 crit->hmtxLock = 0; 130 crit->Reserved = (DWORD)-1; 132 if(DosInterlockedDecrement(&crit->CreationCount) == 0) 133 { 134 crit->LockCount = -1; 135 crit->RecursionCount = 0; 136 crit->OwningThread = 0; 137 crit->hmtxLock = 0; 138 crit->Reserved = (DWORD)-1; 139 } 131 140 } 132 141 return NO_ERROR; -
trunk/src/odincrt/odin36.def
r9331 r9336 1 ; $Id: odin36.def,v 1. 6 2002-10-07 16:28:13sandervl Exp $1 ; $Id: odin36.def,v 1.7 2002-10-08 09:49:07 sandervl Exp $ 2 2 ; Odin VAC++ 3.6.5 shared multithreaded runtime 3 3 LIBRARY ODINCRT INITINSTANCE TERMINSTANCE … … 979 979 _DosDeleteCriticalSection@4 @1200 NONAME 980 980 _DosEnterCriticalSection@8 @1201 NONAME 981 _DosInitializeCriticalSection@ 8@1202 NONAME981 _DosInitializeCriticalSection@12 @1202 NONAME 982 982 _DosAccessCriticalSection@8 @1203 NONAME 983 983 _DosLeaveCriticalSection@4 @1204 NONAME -
trunk/src/odincrt/odin36d.def
r9331 r9336 1 ; $Id: odin36d.def,v 1. 6 2002-10-07 16:28:14sandervl Exp $1 ; $Id: odin36d.def,v 1.7 2002-10-08 09:49:07 sandervl Exp $ 2 2 ; Odin VAC++ 3.6.5 shared multithreaded runtime 3 3 LIBRARY ODINCRTD INITINSTANCE TERMINSTANCE … … 987 987 _DosDeleteCriticalSection@4 @1200 NONAME 988 988 _DosEnterCriticalSection@8 @1201 NONAME 989 _DosInitializeCriticalSection@ 8@1202 NONAME989 _DosInitializeCriticalSection@12 @1202 NONAME 990 990 _DosAccessCriticalSection@8 @1203 NONAME 991 991 _DosLeaveCriticalSection@4 @1204 NONAME -
trunk/src/odincrt/odincrt.def
r9331 r9336 1 ; $Id: odincrt.def,v 1.2 6 2002-10-07 16:28:14sandervl Exp $1 ; $Id: odincrt.def,v 1.27 2002-10-08 09:49:07 sandervl Exp $ 2 2 ; Odin VAC++ 3.08 shared multithreaded runtime 3 3 LIBRARY ODINCRT INITINSTANCE TERMINSTANCE … … 957 957 _DosDeleteCriticalSection@4 @1200 NONAME 958 958 _DosEnterCriticalSection@8 @1201 NONAME 959 _DosInitializeCriticalSection@ 8@1202 NONAME959 _DosInitializeCriticalSection@12 @1202 NONAME 960 960 _DosAccessCriticalSection@8 @1203 NONAME 961 961 _DosLeaveCriticalSection@4 @1204 NONAME -
trunk/src/odincrt/odincrtd.def
r9331 r9336 1 ; $Id: odincrtd.def,v 1. 7 2002-10-07 16:28:14sandervl Exp $1 ; $Id: odincrtd.def,v 1.8 2002-10-08 09:49:08 sandervl Exp $ 2 2 ; Odin VAC++ 3.08 shared multithreaded runtime 3 3 LIBRARY ODINCRTD INITINSTANCE TERMINSTANCE … … 959 959 _DosDeleteCriticalSection@4 @1200 NONAME 960 960 _DosEnterCriticalSection@8 @1201 NONAME 961 _DosInitializeCriticalSection@ 8@1202 NONAME961 _DosInitializeCriticalSection@12 @1202 NONAME 962 962 _DosAccessCriticalSection@8 @1203 NONAME 963 963 _DosLeaveCriticalSection@4 @1204 NONAME -
trunk/src/odincrt/odincrtp.def
r9331 r9336 1 ; $Id: odincrtp.def,v 1. 4 2002-10-07 16:28:15sandervl Exp $1 ; $Id: odincrtp.def,v 1.5 2002-10-08 09:49:08 sandervl Exp $ 2 2 ; Odin VAC++ 3.08 shared multithreaded runtime 3 3 LIBRARY ODINCRTP INITINSTANCE TERMINSTANCE … … 980 980 _DosDeleteCriticalSection@4 @1200 NONAME 981 981 _DosEnterCriticalSection@8 @1201 NONAME 982 _DosInitializeCriticalSection@ 8@1202 NONAME982 _DosInitializeCriticalSection@12 @1202 NONAME 983 983 _DosAccessCriticalSection@8 @1203 NONAME 984 984 _DosLeaveCriticalSection@4 @1204 NONAME
Note:
See TracChangeset
for help on using the changeset viewer.