diff options
author | rpj <rpj> | 2002-01-08 02:21:06 +0000 |
---|---|---|
committer | rpj <rpj> | 2002-01-08 02:21:06 +0000 |
commit | 5f7ea668d6d4c96d9e0efea21ac5e300fda552ad (patch) | |
tree | 3d1f0fddfaf97bd6232edc9b05318d8daa0fca4c /ChangeLog | |
parent | 0337d817b128c648d97a79f42b303421b5b76386 (diff) |
* mutex.c (pthread_mutex_trylock): use
ptw32_interlocked_compare_exchange function pointer
rather than ptw32_InterlockedCompareExchange() directly
to retain portability to non-iX86 processors,
e.g. WinCE etc. The pointer will point to the native
OS version of InterlockedCompareExchange() if the
OS supports it (see ChangeLog entry of 2001-10-17).
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -1,3 +1,13 @@ +2002-01-08 Ross Johnson <rpj@setup1.ise.canberra.edu.au> + + * mutex.c (pthread_mutex_trylock): use + ptw32_interlocked_compare_exchange function pointer + rather than ptw32_InterlockedCompareExchange() directly + to retain portability to non-iX86 processors, + e.g. WinCE etc. The pointer will point to the native + OS version of InterlockedCompareExchange() if the + OS supports it (see ChangeLog entry of 2001-10-17). + 2002-01-07 Ross Johnson <rpj@setup1.ise.canberra.edu.au> Contributed by - Thomas Pfaff <tpfaff@gmx.net> @@ -7,12 +17,13 @@ section calls. (pthread_mutex_destroy): Likewise. (pthread_mutex_unlock): Likewise. - (pthread_mutex_trylock): Likewise; recursive mutexes - now increment the lock count rather than return EBUSY; - errorcheck mutexes return EDEADLCK rather than - EBUSY. This behaviour is consistent with the Solaris - pthreads implementation. - + (pthread_mutex_trylock): Likewise; uses + ptw32_InterlockedCompareExchange() to avoid need for + critical section; library is no longer i386 compatible; + recursive mutexes now increment the lock count rather + than return EBUSY; errorcheck mutexes return EDEADLCK + rather than EBUSY. This behaviour is consistent with the + Solaris pthreads implementation. * implement.h (pthread_mutex_t_): Remove critical section element - no longer needed. |