Age | Commit message (Collapse) | Author |
|
* condvar.c (pthread_cond_wait): Generalise. Moved from here ..
(cond_wait): To here.
(pthread_cond_timedwait): Implement; use generalised cond_wait().
|
|
|
|
* tsd.c (pthread_key_create): Implement.
(pthread_setspecific): Likewise.
(pthread_getspecific): Likewise.
(pthread_key_delete): Likewise.
|
|
* pthread.h (pthread_key_t): Define this type.
(pthread_key_create): Add function prototype.
(pthread_setspecific): Likewise.
(pthread_getspecific): Likwise.
(pthread_key_delete): Likewise.
|
|
* mutex.c (pthread_mutex_trylock): Return ENOSYS if this function
is called on a Win32 platform which is not Windows NT.
|
|
|
|
|
|
* condvar.c (pthread_condattr_init): Do not attempt to malloc any
storage; none is needed now that condattr_t is an empty struct.
(pthread_condattr_destory): Likewise; do not free storage.
(pthread_condattr_setpshared): No longer supported; return ENOSYS.
(pthread_condattr_getpshared): Likewise.
(pthread_cond_init): Implement with help from Douglas Schmidt.
Remember to initialise the cv's internal mutex.
(pthread_cond_wait): Likewise.
(pthread_cond_signal): Likewise.
(pthread_cond_broadcast): Likewise.
(pthread_cond_timedwait): Preliminary implementation, but I need
to see some API documentation for `WaitForMultipleObject'.
(pthread_destory): Implement.
|
|
* pthread.h (pthread_cond_t): Fix for u_int. Do not assume that
the mutex contained withing the pthread_cond_t structure will be a
critical section. Use our new POSIX type!
|
|
* pthread.h (pthread_cond_init): Add function protoype.
(pthread_cond_broadcast): Likewise.
(pthread_cond_signal): Likewise.
(pthread_cond_timedwait): Likewise.
(pthread_cond_wait): Likewise.
(pthread_cond_destroy): Likewise.
(pthread_cond_t): Define this type.
|
|
* implement.h (_pthread_condattr_t): Remove shared attribute.
|
|
|
|
* mutex.c (pthread_mutex_init): Use InitializeCritcalSection().
(pthread_mutex_destroy): Use DeleteCriticalSection().
(pthread_mutex_lock): Use EnterCriticalSection().
(pthread_mutex_trylock): Use TryEnterCriticalSection(). This is
not supported by Windows 9x, but trylock is a hack anyway, IMHO.
(pthread_mutex_unlock): Use LeaveCriticalSection().
|
|
* pthread.h (PTHREADS_PROCESS_PRIVATE): Remove.
(PTHREAD_PROCESS_SHARED): Likewise. No support for mutexes shared
across processes for now.
(pthread_mutex_t): Use a Win32 CRITICAL_SECTION type for better
performance.
|
|
* mutex.c (pthread_mutexattr_init): No need to malloc any storage;
the attributes structure is now empty.
(pthread_mutexattr_destroy): This is now a nop.
|
|
|
|
* implement.h (_pthread_mutexattr_t): Remove shared attribute.
|
|
* mutex.c (pthread_mutexattr_setpshared): This optional function
is no longer supported, since we want to implement POSIX mutex
variables using the much more efficient Win32 critical section
primitives. Critical section objects in Win32 cannot be shared
between processes.
(pthread_mutexattr_getpshared): Likewise.
|
|
|
|
|
|
* attr.c (pthread_attr_setstacksize): Implement.
(pthread_attr_getstacksize): Likewise.
(pthread_attr_setstackaddr): Likewise.
(pthread_attr_getstackaddr): Likewise.
(pthread_attr_init): Likewise.
(pthread_attr_destroy): Likewise.
|
|
* pthread.h (pthread_attr_init): Add function prototype.
(pthread_attr_destroy): Likewise.
(pthread_attr_setstacksize): Likewise.
(pthread_attr_getstacksize): Likewise.
(pthread_attr_setstackaddr): Likewise.
(pthread_attr_getstackaddr): Likewise.
|
|
* condvar.c (pthread_condattr_init): Add `_cond' to function name.
|
|
* mutex.c (pthread_mutex_lock): Add `_mutex' to function name.
(pthread_mutex_trylock): Likewise.
(pthread_mutex_unlock): Likewise.
|
|
* pthread.h (pthread_condattr_setpshared): Fix typo.
|
|
|
|
|
|
|
|
* condvar.c (pthread_condattr_init): Implement.
(pthread_condattr_destroy): Likewise.
(pthread_condattr_setpshared): Likewise.
(pthread_condattr_getpshared): Likewise.
|
|
* pthread.h (pthread_condattr_t): Define this type.
(pthread_condattr_init): Likewise.
(pthread_condattr_destroy): Likewise.
(pthread_condattr_setpshared): Likewise.
(pthread_condattr_getpshared): Likewise.
|
|
|
|
* implement.h (PTHREADS_THREADS_MAX): Remove trailing semicolon.
(PTHREADS_STACK_MIN): Specify; needs confirming.
(_pthreads_attr_t): Define this type.
(_pthreads_condattr_t): Likewise.
|
|
|
|
* mutex.c (pthread_mutex_init): Implement.
(pthread_mutex_destroy): Likewise.
(pthread_lock): Likewise.
(pthread_trylock): Likewise.
(pthread_unlock): Likewise.
|
|
* pthread.h (pthread_mutex_t): Define this type.
(pthread_mutex_destroy): Add function prototype.
(pthread_lock): Likewise.
(pthread_trylock): Likewise.
(pthread_unlock): Likewise.
|
|
|
|
(pthread_mutexattr_destroy): Implement.
(pthread_mutexattr_setpshared): Likewise.
(pthread_mutexattr_getpshared): Likewise.
(insert_attr): New function; very preliminary implementation!
(is_attr): Likewise.
(remove_attr): Likewise.
|
|
* pthread.h (pthread_mutexattr_init): Add function prototype.
(pthread_mutexattr_destroy): Likewise.
(pthread_mutexattr_setpshared): Likewise.
(pthread_mutexattr_getpshared): Likewise.
(PTHREAD_PROCESS_PRIVATE): Define.
(PTHREAD_PROCESS_SHARED): Define.
|
|
* implement.h (_pthread_mutex_attr_t): Define this implementation
internal type. Application programmers only see a mutex attribute
object as a void pointer.
|
|
|
|
* mutex.c (pthread_mutexattr_setprotocol): Implement.
(pthread_mutexattr_getprotocol): Likewise.
(pthread_mutexattr_setprioceiling): Likewise.
(pthread_mutexattr_getprioceiling): Likewise.
|
|
* pthread.h (pthread_mutexattr_t): Define this type.
(pthread_mutexattr_setprotocol): Add function prototype.
(pthread_mutexattr_getprotocol): Likewise.
(pthread_mutexattr_setprioceiling): Likewise.
(pthread_mutexattr_getprioceiling): Likewise.
|
|
|
|
|
|
|
|
|
|
* sync.c (pthread_join): Implement.
|
|
* misc.c (pthread_equal): Implement.
|
|
* pthread.h (pthread_join): Add function prototype.
(pthread_equal): Likewise.
|
|
|