Age | Commit message (Collapse) | Author |
|
tsd1.c test successfully using buildlib.bat and build.bat scripts.
I not convinced that I understand the relationships between "__cplusplus" and
"_WIN32" and the MS compiler, particularly in pthread.h where
pthread_cleanup_push etc is defined. In particular, I have assumed that
the __try/__finally blocks are only available if _WIN32 and __cplusplus
are defined. I suspect this is wrong.
Tue Dec 29 13:11:16 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* implement.h: Move the following struct definitions to pthread.h:
pthread_t_, pthread_attr_t_, pthread_mutex_t_, pthread_mutex_t_,
pthread_mutexattr_t_, pthread_key_t_, pthread_cond_t_,
pthread_condattr_t_, pthread_once_t_.
* pthread.h: Add "_" prefix to pthread_push_cleanup and
pthread_pop_cleanup internal routines, and associated struct and
typedefs.
* buildlib.bat: Add compile command for semaphore.c
* pthread.def: Comment out pthread_atfork routine name.
Now unimplemented.
* tsd.c (pthread_setspecific): Rename tkAssocCreate to
_pthread_tkAssocCreate.
(pthread_key_delete): Rename tkAssocDestroy to
_pthread_tkAssocDestroy.
* sync.c (pthread_join): Rename threadDestroy to _pthread_threadDestroy
* sched.c (is_attr): attr is now **attr (was *attr), so add extra
NULL pointer test.
(pthread_attr_setschedparam): Increase redirection for attr which is
now a **.
(pthread_attr_getschedparam): Ditto.
(pthread_setschedparam): Change thread validation and rename "thread"
Win32 thread Handle element name to match John Bossom's version.
(pthread_getschedparam): Ditto.
* private.c (_pthread_threadDestroy): Rename call to
callUserDestroyRoutines() as _pthread_callUserDestroyRoutines()
* misc.c: Add #include "implement.h".
* dll.c: Remove defined(KLUDGE) wrapped code.
* fork.c: Remove redefinition of ENOMEM.
Remove pthread_atfork() and fork() with #if 0/#endif.
* create.c (pthread_create): Rename threadStart and threadDestroy calls
to _pthread_threadStart and _pthread_threadDestroy.
* implement.h: Rename "detachedstate" to "detachstate".
* attr.c: Rename "detachedstate" to "detachstate".
Mon Dec 28 09:54:39 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (pthread_attr_t_): Change to *pthread_attr_t.
* attr.c (pthread_attr_setstacksize): Merge with John Bossom's version.
(pthread_attr_getstacksize): Merge with John Bossom's version.
(pthread_attr_setstackaddr): Merge with John Bossom's version.
(pthread_attr_getstackaddr): Merge with John Bossom's version.
(pthread_attr_init): Merge with John Bossom's version.
(pthread_attr_destroy): Merge with John Bossom's version.
(pthread_attr_getdetachstate): Merge with John Bossom's version.
(pthread_attr_setdetachstate): Merge with John Bossom's version.
(is_attr): attr is now **attr (was *attr), so add extra NULL pointer
test.
* implement.h (pthread_attr_t_): Add and rename elements in JEB's
version to correspond to original, so that it can be used with
original attr routines.
* pthread.h: Add #endif at end which was truncated in merging.
|
|
* attr.c (pthread_attr_setstackaddr): Remove FIXME comment. Win32
does know about ENOSYS after all.
(pthread_attr_setstackaddr): Likewise.
|
|
|
|
* attr.c (pthread_attr_init): Only zero out the `sigmask' member
if we have the sigset_t type.
* pthread.h (pthread_sigmask): Only provide if we have the
sigset_t type.
|
|
* {most}.c: Include <errno.h> to get POSIX error values.
* signal.c (pthread_sigmask): Only provide if HAVE_SIGSET_T is
defined.
* config.h: #undef features, don't #define them. This will be
generated by autoconf very soon.
|
|
* implement.h(_pthread_virgins): Add extern.
(_pthread_virgin_next): Ditto.
(_pthread_reuse): Ditto.
(_pthread_reuse_top): Ditto.
(_pthread_win32handle_map): Ditto.
(_pthread_threads_mutex_table): Ditto.
* global.c (_pthread_virgins): Changed from array to pointer.
Storage allocation for the array moved into dll.c.
(_pthread_reuse): Ditto.
(_pthread_win32handle_map): Ditto.
(_pthread_threads_mutex_table): Ditto.
* dll.c (PthreadsEntryPoint): Set up thread admin storage when
DLL is loaded.
* fork.c (pthread_atfork): Fix function pointer arg to all
_pthread_handler_push() calls. Change "arg" arg to NULL in child push.
* exit.c: Add windows.h and process.h includes.
(_pthread_exit): Add local detachstate declaration.
(_pthread_exit): Fix incorrect name for pthread_attr_getdetachstate().
* pthread.h (_POSIX_THREAD_ATTR_STACKSIZE): Move from global.c
(_POSIX_THREAD_ATTR_STACKADDR): Ditto.
* create.c (pthread_create): Fix #if should be #ifdef.
(_pthread_start_call): Remove usused variables.
* process.h: Create.
* windows.h: Move _beginthreadex and _endthreadex into
process.h
Mon Aug 3 21:19:57 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* condvar.c (pthread_cond_init): Add NULL attr to
pthread_mutex_init() call - default attributes will be used.
(cond_wait): Fix typo.
(cond_wait): Fix typo - cv was ev.
(pthread_cond_broadcast): Fix two identical typos.
* cleanup.c (_pthread_destructor_pop_all): Remove _ prefix from
PTHREAD_DESTRUCTOR_ITERATIONS.
* pthread.h: Move _POSIX_* values into posix.h
* pthread.h: Fix typo in pthread_mutex_init() prototype.
* attr.c (pthread_attr_init): Fix error in priority member init.
* windows.h (THREAD_PRIORITY_NORMAL): Add.
* pthread.h (sched_param): Add missing ';' to struct definition.
* attr.c (pthread_attr_init): Remove obsolete pthread_attr_t
member initialisation - cancelstate, canceltype, cancel_pending.
(is_attr): Make arg "attr" a const.
* implement.h (_PTHREAD_HANDLER_POP_LIFO): Remove definition.
(_PTHREAD_HANDLER_POP_FIFO): Ditto.
(_PTHREAD_VALID): Add missing newline escape (\).
(_pthread_handler_node): Make element "next" a pointer.
|
|
* private.c (_pthread_delete_thread_entry): Destroy the thread
entry attribute object before deleting the thread entry itself.
* attr.c (pthread_attr_init): Initialise cancel_pending = FALSE.
(pthread_attr_setdetachstate): Rename "detached" to "detachedstate".
(pthread_attr_getdetachstate): Ditto.
* exit.c (_pthread_exit): Fix incorrect check for detachedstate.
* implement.h (_pthread_call_t): Remove env member.
|
|
* create.c (_pthread_start_call): Set thread priority. Ensure our
thread entry is removed from the thread table but only if
pthread_detach() was called and there are no waiting joins.
(pthread_create): Set detach flag in thread entry if the
thread is created PTHREAD_CREATE_DETACHED.
* pthread.h (pthread_attr_t): Rename member "detachedstate".
* attr.c (pthread_attr_init): Rename attr members.
* exit.c (pthread_exit): Fix indirection mistake.
* implement.h (_PTHREAD_THREADS_TABLE_INDEX): Add.
* exit.c (_pthread_vacuum): Fix incorrect args to
_pthread_handler_pop_all() calls.
Make thread entry removal conditional.
* sync.c (pthread_join): Add multiple join and async detach handling.
* implement.h (_PTHREAD_THREADS_TABLE_INDEX): Add.
* global.c (_pthread_threads_mutex_table): Add.
* implement.h (_pthread_once_flag): Remove.
(_pthread_once_lock): Ditto.
(_pthread_threads_mutex_table): Add.
* global.c (_pthread_once_flag): Remove.
(_pthread_once_lock): Ditto.
* sync.c (pthread_join): Fix tests involving new return value
from _pthread_find_thread_entry().
(pthread_detach): Ditto.
* private.c (_pthread_find_thread_entry): Failure return code
changed from -1 to NULL.
|
|
* attr.c (pthread_attr_destroy): Fix merge conflicts.
(pthread_attr_getdetachstate): Fix merge conflicts.
(pthread_attr_setdetachstate): Fix merge conflicts.
* pthread.h: Fix merge conflicts.
* sync.c (pthread_join): Fix merge conflicts.
|
|
* attr.c (pthread_attr_getdetachstate): Implement.
(pthread_attr_setdetachstate): Likewise.
|
|
* attr.c (pthread_attr_init): Initialise cancelability and
canceltype structure members.
|
|
* attr.c, implement.h, pthread.h, ChangeLog: Resolve CVS merge
conflicts.
* private.c (_pthread_find_thread_entry): Changes to return type
to support leaner _pthread_threads_table[] which now only stores
_pthread_thread_thread_t *.
(_pthread_new_thread_entry): Internal changes.
(_pthread_delete_thread_entry): Internal changes to avoid contention.
Calling routines changed accordingly.
* pthread.h: Modified cleanup macros to use new generic push and pop.
Added destructor and atfork stacks to _pthread_threads_thread_t.
* cleanup.c (_pthread_handler_push, _pthread_handler_pop,
_pthread_handler_pop_all): Renamed cleanup push and pop routines
and made generic to handle destructors and atfork handlers as
well.
* create.c (_pthread_start_call): New function is a wrapper for
all new threads. It allows us to do some cleanup when the thread
returns, ie. that is otherwise only done if the thread is cancelled.
* exit.c (_pthread_vacuum): New function contains code from
pthread_exit() that we need in the new _pthread_start_call()
as well.
* implement.h: Various additions and minor changes.
* pthread.h: Various additions and minor changes.
Change cleanup handler macros to use generic handler push and pop
functions.
* attr.c: Minor mods to all functions.
(is_attr): Implemented missing function.
* create.c (pthread_create): More clean up.
* private.c (_pthread_find_thread_entry): Implement.
(_pthread_delete_thread_entry): Implement.
(_pthread_new_thread_entry): Implement.
These functions manipulate the implementations internal thread
table and are part of general code cleanup and modularisation.
They replace _pthread_getthreadindex() which was removed.
* exit.c (pthread_exit): Changed to use the new code above.
* pthread.h: Add cancelability constants. Update comments.
|
|
* attr.c (pthread_setstacksize): Update test of attr argument.
(pthread_getstacksize): Likewise.
(pthread_setstackaddr): Likewise.
(pthread_getstackaddr): Likewise.
(pthread_attr_init): No need to allocate any storage.
(pthread_attr_destroy): No need to free any storage.
* mutex.c (is_attr): Not likely to be needed; remove.
(remove_attr): Likewise.
(insert_attr): Likewise.
* pthread.h (pthread_attr_t): Moved here from implement.h.
* implement.h (_pthread_mutexattr_t): Moved to a public definition
in pthread.h. There was little gain in hiding these details.
(_pthread_condattr_t): 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.
|