Bugzilla 81666. new os2 locking

This commit is contained in:
larryh%netscape.com 2001-06-04 22:20:48 +00:00
Родитель 65cb721c9b
Коммит 97de1af860
2 изменённых файлов: 32 добавлений и 5 удалений

Просмотреть файл

@ -350,10 +350,10 @@ extern PRInt32 _MD_Accept(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
#define _PR_LOCK _MD_LOCK
#define _PR_UNLOCK _MD_UNLOCK
#define _MD_NEW_LOCK(lock) (DosCreateMutexSem(0, &((lock)->mutex), 0, 0),(lock)->notified.length=0,(lock)->notified.link=NULL,PR_SUCCESS)
#define _MD_FREE_LOCK(lock) DosCloseMutexSem(((lock)->mutex))
#define _MD_LOCK(lock) DosRequestMutexSem(((lock)->mutex), SEM_INDEFINITE_WAIT)
#define _MD_TEST_AND_LOCK(lock) (DosRequestMutexSem(((lock)->mutex), SEM_INDEFINITE_WAIT),PR_SUCCESS)
#define _MD_NEW_LOCK (_PR_MD_NEW_LOCK)
#define _MD_FREE_LOCK (_PR_MD_FREE_LOCK)
#define _MD_LOCK (_PR_MD_LOCK)
#define _MD_TEST_AND_LOCK (_PR_MD_TEST_AND_LOCK)
#define _MD_UNLOCK (_PR_MD_UNLOCK)
/* --- lock and cv waiting --- */

Просмотреть файл

@ -277,7 +277,7 @@ _PR_MD_WAIT_CV(_MDCVar *cv, _MDLock *lock, PRIntervalTime timeout )
rv = DosWaitEventSem(thred->md.blocked_sema.sem, msecs);
DosResetEventSem(thred->md.blocked_sema.sem, &count);
_MD_LOCK(lock);
DosRequestMutexSem((lock->mutex), SEM_INDEFINITE_WAIT);
PR_ASSERT(rv == NO_ERROR || rv == ERROR_TIMEOUT);
@ -329,6 +329,33 @@ _PR_MD_NOTIFY_CV(_MDCVar *cv, _MDLock *lock)
return;
}
PRStatus
_PR_MD_NEW_LOCK(_MDLock *lock)
{
DosCreateMutexSem(0, &(lock->mutex), 0, 0);
(lock)->notified.length=0;
(lock)->notified.link=NULL;
return PR_SUCCESS;
}
void
_PR_MD_FREE_LOCK(_MDLock *lock)
{
DosCloseMutexSem(lock->mutex);
}
void _PR_MD_LOCK(_MDLock *lock)
{
DosRequestMutexSem(lock->mutex, SEM_INDEFINITE_WAIT);
}
PRBool
_PR_MD_TEST_AND_LOCK(_MDLock *lock)
{
DosRequestMutexSem(lock->mutex, SEM_INDEFINITE_WAIT);
return PR_SUCCESS;
}
void
_PR_MD_NOTIFYALL_CV(_MDCVar *cv, _MDLock *lock)
{