summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
1998-10-14Thu Oct 15 14:05:01 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* tsd.c (pthread_setspecific): Fix type declaration and cast. (pthread_getspecific): Ditto.
1998-10-14Thu Oct 15 11:53:21 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* global.c (_pthread_tsd_key_table): Fix declaration. * implement.h(_pthread_TSD_keys_TlsIndex): Add missing extern. (_pthread_tsd_mutex): Ditto. * create.c (_pthread_start_call): Fix "keys" array declaration. Add comment. * tsd.c (pthread_setspecific): Fix type declaration and cast. (pthread_getspecific): Ditto. * cleanup.c (_pthread_destructor_run_all): Declare missing loop counter.
1998-10-14Wed Oct 14 21:09:24 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* private.c (_pthread_new_thread): Increment _pthread_threads_count. (_pthread_delete_thread): Decrement _pthread_threads_count. Remove some comments. * exit.c (_pthread_exit): : Fix two pthread_mutex_lock() calls that should have been pthread_mutex_unlock() calls. (_pthread_vacuum): Remove call to _pthread_destructor_pop_all(). * create.c (pthread_create): Fix two pthread_mutex_lock() calls that should have been pthread_mutex_unlock() calls. * global.c (_pthread_tsd_mutex): Add mutex for TSD operations. * tsd.c (pthread_key_create): Add critical section. (pthread_setspecific): Ditto. (pthread_getspecific): Ditto. (pthread_key_delete): Ditto. * sync.c (pthread_join): Fix two pthread_mutex_lock() calls that should have been pthread_mutex_unlock() calls.
1998-10-14Mon Oct 12 00:00:44 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h (_pthread_tsd_key_table): New. * create.c (_pthread_start_call): Initialise per-thread TSD keys to NULL. * misc.c (pthread_once): Correct typo in comment. * implement.h (_pthread_destructor_push): Remove. (_pthread_destructor_pop): Remove. (_pthread_destructor_run_all): Rename from _pthread_destructor_pop_all. (_PTHREAD_TSD_KEY_DELETED): Add enum. (_PTHREAD_TSD_KEY_INUSE): Add enum. * cleanup.c (_pthread_destructor_push): Remove. (_pthread_destructor_pop): Remove. (_pthread_destructor_run_all): Totally revamped TSD. * dll.c (_pthread_TSD_keys_TlsIndex): Initialise. * tsd.c (pthread_setspecific): Totally revamped TSD. (pthread_getspecific): Ditto. (pthread_create): Ditto. (pthread_delete): Ditto. Sun Oct 11 22:44:55 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * global.c (_pthread_tsd_key_table): Add new global. * implement.h (_pthread_tsd_key_t and struct _pthread_tsd_key): Add. (struct _pthread): Remove destructorstack. * cleanup.c (_pthread_destructor_run_all): Rename from _pthread_destructor_pop_all. The key destructor stack was made global rather than per-thread. No longer removes destructor nodes from the stack. Comments updated.
1998-10-061998-10-06 Ben Elliston <bje@cygnus.com>bje
* condvar.c (cond_wait): Use POSIX, not Win32 mutex calls. (pthread_cond_broadcast): Likewise. (pthread_cond_signal): Likewise.
1998-10-041998-10-05 Ben Elliston <bje@cygnus.com>bje
* pthread.def: Update. Some functions aren't available yet, others are macros in <pthread.h>. * tests/join.c: Remove; useless.
1998-10-04Mon Oct 5 14:25:08 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* pthread.def: New file for building the DLL.
1998-10-041998-10-05 Ben Elliston <bje@cygnus.com>bje
* tests/self.c: Remove; rename to self1.c. * tests/self1.c: This is the old self.c. * tests/self2.c: New file. Test pthread_self() with a single thread. Passes. * tests/self3.c: New file. Test pthread_self() with a couple of threads to ensure their thread IDs differ. Passes.
1998-10-041998-10-05 Ben Elliston <bje@cygnus.com>bje
* misc.c (pthread_once): Use the POSIX mutex primitives, not Win32. Remove irrelevant FIXME comment. * pthread.h (PTHREAD_ONCE_INIT): Define. * tests/once1.c: New file; test for pthread_once(). Passes.
1998-10-041998-10-05 Ben Elliston <bje@cygnus.com>bje
* misc.c (pthread_equal): Correct inverted logic bug. * tests/create1.c: New file; test pthread_create(). Passes. * tests/equal.c: Poor test; remove. * tests/equal1.c New file; test pthread_equal(). Passes.
1998-10-041998-10-05 Ben Elliston <bje@cygnus.com>bje
* global.c (PTHREAD_MUTEX_INITIALIZER): Move to pthread.h. * pthread.h (PTHREAD_MUTEX_INITIALIZER): Define. (pthread_mutex_t): Reimplement as a struct containing a valid flag. If the flag is ever down upon entry to a mutex operation, we call pthread_mutex_create() to initialise the object. This fixes the problem of how to handle statically initialised objects that can't call InitializeCriticalSection() due to their context. * mutex.c (pthread_mutex_init): Set valid flag. (pthread_mutex_destroy): Clear valid flag. (pthread_mutex_lock): Check and handle the valid flag. (pthread_mutex_unlock): Likewise. (pthread_mutex_trylock): Likewise. * tests/mutex3.c: New file; test for the static initialisation macro. Passes.
1998-10-041998-10-04 Ben Elliston <bje@cygnus.com>bje
* tests/mutex2.c: Test pthread_mutex_trylock(). Passes. * tests/mutex1.c (main): Eliminate warning.
1998-10-041998-10-04 Ben Elliston <bje@cygnus.com>bje
* tests/mutex1.c: New basic test for mutex functions (it passes).
1998-10-041998-10-04 Ben Elliston <bje@cygnus.com>bje
* configure.in: Test for __stdcall, not _stdcall. Typo. * configure: Regenerate.
1998-10-041998-10-04 Ben Elliston <bje@cygnus.com>bje
* attr.c (pthread_attr_setstackaddr): Remove FIXME comment. Win32 does know about ENOSYS after all. (pthread_attr_setstackaddr): Likewise.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* create.c (_pthread_start_call): Add STDCALL prefix.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* config.h.in: Regenerate.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* configure.in: Test for the `_stdcall' keyword. Define `STDCALL' to `_stdcall' if we have it, null otherwise. * configure: Regenerate. * acconfig.h (STDCALL): New define.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* mutex.c (pthread_mutex_init): Correct function signature.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* 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.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* pthread.h: No need to include <unistd.h>. It doesn't even exist on Win32! Again, an artifact of cross-compilation.
1998-10-031998-10-03 Ben Elliston <bje@cygnus.com>bje
* process.h: Remove. This was a stand-in before we started doing native compilation under Win32. * pthread.h (pthread_mutex_init): Make `attr' argument const.
1998-10-021998-10-02 Ben Elliston <bje@cygnus.com>bje
* COPYING: Remove. * COPYING.LIB: Add. This library is under the LGPL.
1998-09-25Update.bje
1998-09-13 * ChangeLog: Fix typo.bje
1998-09-131998-09-13 Ben Elliston <bje@cygnus.com>bje
* configure.in: Test for required system features. * configure: Generate. * acconfig.h: New file. * config.h.in: Generate. * Makefile.in: Renamed from Makefile. * COPYING: Import from a recent GNU package. * config.guess: Likewise. * config.sub: Likewise. * install-sh: Likewise. * Makefile: Remove. * config.h: Likewise.
1998-09-12 * tsd.c: Add comment explaining rationale for not buildingrpj
POSIX TSD on top of Win32 TLS.
1998-09-121998-09-12 Ben Elliston <bje@cygnus.com>bje
* windows.h: No longer needed; remove. * windows.c: Likewise.
1998-09-12 * windows.h: Remove error number definitions. These are in <errno.h>rpj
1998-09-121998-09-12 Ben Elliston <bje@cygnus.com>bje
* {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.
1998-08-101998-08-11 Ben Elliston <bje@cygnus.com>pre-compiled-auug99bje
* Makefile (LIB): Define. (clean): Define target. (all): Build a library not just the object files. * pthread.h: Provide a definition for struct timespec if we don't already have one. * windows.c (TlsGetValue): Bug fix.
1998-08-06*** empty log message ***rpj
1998-08-06Removing compiler warnings.rpj
Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au> * create.c (pthread_create): Typecast (HANDLE) NULL. Typecast (unsigned (*)(void *)) start_routine.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* condvar.c (pthread_cond_init): Add address-of operator & to arg 1 of pthread_mutex_init() call. (pthread_cond_destroy): Add address-of operator & to arg 1 of pthread_mutex_destroy() call.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* cleanup.c (_pthread_destructor_pop_all): Add (int) cast to pthread_getspecific() arg. (_pthread_destructor_pop): Add (void *) cast to "if" conditional. (_pthread_destructor_push): Add (void *) cast to _pthread_handler_push() "key" arg. (malloc.h): Add include.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* implement.h (_pthread_destructor_pop): Add prototype. * tsd.c (implement.h): Add include.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* sync.c (pthread_join): Remove target_thread_mutex and it's initialisation. Rename getdetachedstate to getdetachstate. Remove unused variable "exitcode". (pthread_detach): Remove target_thread_mutex and it's initialisation. Rename getdetachedstate to getdetachstate. Rename setdetachedstate to setdetachstate.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* signal.c (pthread_sigmask): Rename SIG_SET to SIG_SETMASK. Cast "set" to (long *) in assignment to passify compiler warning. Add address-of operator & to thread->attr.sigmask in memcpy() call and assignment. (pthread_sigmask): Add address-of operator & to thread->attr.sigmask in memcpy() call and assignment.
1998-08-06Thu Aug 6 15:19:22 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* windows.h (THREAD_PRIORITY_ERROR_RETURN): Add. (THREAD_PRIORITY_LOWEST): Add. (THREAD_PRIORITY_HIGHEST): Add. * sched.c (is_attr): Add function. (implement.h): Add include. (pthread_setschedparam): Rename all instances of "sched_policy" to "sched_priority". (pthread_getschedparam): Ditto.
1998-08-04Tue Aug 4 16:57:58 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* private.c (_pthread_delete_thread): Fix typo. Add missing ';'. * global.c (_pthread_virgins): Change types from pointer to array pointer. (_pthread_reuse): Ditto. (_pthread_win32handle_map): Ditto. (_pthread_threads_mutex_table): Ditto. * implement.h(_pthread_virgins): Change types from pointer to array pointer. (_pthread_reuse): Ditto. (_pthread_win32handle_map): Ditto. (_pthread_threads_mutex_table): Ditto. * private.c (_pthread_delete_thread): Fix "entry" should be "thread". * misc.c (pthread_self): Add extern for _pthread_threadID_TlsIndex. * global.c: Add comment. * misc.c (pthread_once): Fix member -> dereferences. Change _pthread_once_flag to once_control->flag in "if" test.
1998-08-03Tue Aug 4 00:09:30 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* 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.
1998-08-031998-08-02 Ben Elliston <bje@cygnus.com>bje
* windows.h: Remove duplicate TlsSetValue() prototype. Add TlsGetValue() prototype. (FALSE): Define. (TRUE): Likewise. Add forgotten errno values. Guard against multiple #includes. * windows.c: New file. Implement stubs for Win32 functions. * Makefile (SRCS): Remove. Not explicitly needed. (CFLAGS): Add -Wall for all warnings with GCC.
1998-08-02Sun Aug 2 19:03:42 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* config.h: Create. This is a temporary stand-in for autoconf yet to be done. (HAVE_SIGNAL_H): Add. * pthread.h: Minor rearrangement for temporary config.h.
1998-07-31Fri Jul 31 14:00:29 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* cleanup.c (_pthread_destructor_pop): Implement. Removes destructors associated with a key without executing them. (_pthread_destructor_pop_all): Add FIXME comment. * tsd.c (pthread_key_delete): Add call to _pthread_destructor_pop().
1998-07-31 (pthread_key_delete): Add FIXME comment.rpj
1998-07-31Fri Jul 31 00:05:45 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* tsd.c (pthread_key_create): Update to properly associate the destructor routine with the key. * exit.c (_pthread_vacuum): Add call to _pthread_destructor_pop_all().
1998-07-31Fri Jul 31 00:05:45 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h (_pthread_handler_pop_all): Add prototype. (_pthread_destructor_pop_all): Ditto. * cleanup.c (_pthread_destructor_push): Implement. This is just a call to _pthread_handler_push(). (_pthread_destructor_pop_all): Implement. This is significantly different to _pthread_handler_pop_all().
1998-07-30Fri Jul 31 00:05:45 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* Makefile (SRCS): Create. Preliminary. * windows.h: Create. Contains Win32 definitions for compile testing. This is just a standin for the real one. * pthread.h (SIG_UNBLOCK): Fix typo. Was SIG_BLOCK. (windows.h): Add include. Required for CRITICAL_SECTION. (pthread_cond_t): Move enum declaration outside of struct definition. (unistd.h): Add include - may be temporary. * condvar.c (windows.h): Add include.
1998-07-30Fri Jul 31 00:05:45 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h (_PTHREAD_THIS): Remove - no longer required. (_PTHREAD_STACK): Use pthread_self() instead of _PTHREAD_THIS.
1998-07-30Thu Jul 30 23:12:45 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h: Remove _pthread_find_entry() prototype. * private.c: Extend comments. Remove _pthread_find_entry() - no longer needed. * create.c (_pthread_start_call): Add call to TlsSetValue() to store the thread ID. * dll.c (PthreadsEntryPoint): Implement. This is called whenever a process loads the DLL. Used to initialise thread local storage. * implement.h: Add _pthread_threadID_TlsIndex. Add ()s around _PTHREAD_VALID expression. * misc.c (pthread_self): Re-implement using Win32 TLS to store the threads own ID.