summaryrefslogtreecommitdiff
path: root/ChangeLog
AgeCommit message (Collapse)Author
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.
1998-07-29Wed Jul 29 11:39:03 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* private.c: Corrections in comments. (_pthread_new_thread): Alter "if" flow to be more natural.
1998-07-29Wed Jul 29 11:39:03 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* cleanup.c (_pthread_handler_push): Same as below. * create.c (pthread_create): Same as below. * private.c (_pthread_new_thread): Rename "new" to "new_thread". Since when has a C programmer been required to know C++?
1998-07-28Tue Jul 28 14:04:29 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* implement.h: Add _PTHREAD_VALID macro. * sync.c (pthread_join): Modify to use the new thread type and _pthread_delete_thread(). Rename "target" to "thread". Remove extra local variable "target". (pthread_detach): Ditto. * signal.c (pthread_sigmask): Move init of "us" out of inner block. Fix instance of "this" should have been "us". Rename "us" to "thread". * sched.c (pthread_setschedparam): Modify to use the new thread type. (pthread_getschedparam): Ditto. * private.c (_pthread_find_thread): Fix return type and arg. * implement.h: Remove _PTHREAD_YES and _PTHREAD_NO. (_pthread_new_thread): Add prototype. (_pthread_find_thread): Ditto. (_pthread_delete_thread): Ditto. (_pthread_new_thread_entry): Remove prototype. (_pthread_find_thread_entry): Ditto. (_pthread_delete_thread_entry): Ditto. ( _PTHREAD_NEW, _PTHREAD_INUSE, _PTHREAD_EXITED, _PTHREAD_REUSE): Add. * create.c (pthread_create): Minor rename "us" to "new" (I need these cues but it doesn't stop me coming out with some major bugs at times). Load start_routine and arg into the thread so the wrapper can call it. * exit.c (pthread_exit): Fix pthread_this should be pthread_self. * cancel.c (pthread_setcancelstate): Change _pthread_threads_thread_t * to pthread_t and init with pthread_this(). (pthread_setcanceltype): Ditto.
1998-07-28Tue Jul 28 14:04:29 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* exit.c (_pthread_exit): Add new pthread_t arg. Rename _pthread_delete_thread_entry to _pthread_delete_thread. Rename "us" to "thread". (pthread_exit): Call _pthread_exit with added thread arg.
1998-07-28Tue Jul 28 14:04:29 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* create.c (_pthread_start_call): Insert missing ")". Add "us" arg to _pthread_exit() call. (pthread_create): Modify to use new thread allocation scheme.
1998-07-28Tue Jul 28 14:04:29 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* private.c: Added detailed explanation of the new thread allocation scheme. (_pthread_new_thread): Totally rewritten to use new thread allocation scheme. (_pthread_delete_thread): Ditto. (_pthread_find_thread): Obsolete.
1998-07-27Mon Jul 27 17:46:37 1998 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* create.c (pthread_create): Start of rewrite. Not completed yet. * private.c (_pthread_new_thread_entry): Start of rewrite. Not complete. * implement.h (_pthread_threads_thread): Rename, remove thread member, add win32handle and ptstatus members. (_pthread_t): Add. * pthread.h: pthread_t is no longer mapped directly to a Win32 HANDLE type. This is so we can let the Win32 thread terminate and reuse the HANDLE while pthreads holds it's own thread ID until the last waiting join exits.
1998-07-26Mon Jul 27 00:20:37 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* 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.
1998-07-26Sun Jul 26 13:06:12 1998 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h (_pthread_new_thread_entry): Fix prototype. (_pthread_find_thread_entry): Ditto. (_pthread_delete_thread_entry): Ditto. (_pthread_exit): Add prototype.