| Age | Commit message (Collapse) | Author | 
|---|
|  | * dll.c (PthreadsEntryPoint): Cast return value of GetProcAddress
	to resolve compile warning from MSVC. | 
|  | that hadn't been checked in. Those are to finish off the original TSD management
scheme which will now start to be replaced by John Bossom's implementation.
Anders' description of his changes:-
Fixes the problem with
`TryEnterCriticalSection' on w95 systems. Instead
of directly calling `TryEnterCriticalSection' it
tries to get a pointer at DLL startup and only calls
the function if it exists. See ChangeLog for things
changed.
1998-12-05  Anders Norlander  <anorland@hem2.passagen.se>
	* implement.h (_pthread_try_enter_critical_section): New extern
	* dll.c (_pthread_try_enter_critical_section): New pointer to
	TryEnterCriticalSection if it exists; otherwise NULL.
	* dll.c (PthreadsEntryPoint):
	Initialize _pthread_try_enter_critical_section at startup
	and release kernel32 handle when DLL is being unloaded.
	* mutex.c (pthread_mutex_trylock): Replaced check for NT with
	a check if _pthread_try_enter_critical_section is valid
	pointer to a function. Call _pthread_try_enter_critical_section
	instead of TryEnterCriticalSection to avoid errors on Win95.
Sun Nov 15 21:24:06 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
	* cleanup.c (_pthread_destructor_run_all): Declare missing void * arg.
	Fixup CVS merge conflicts.
Fri Oct 30 15:15:50 1998  Ross Johnson  <rpj@swan.canberra.edu.au>
	* cleanup.c (_pthread_handler_push): Fixed bug appending new
	handler to list reported by Peter Slacik
	<Peter.Slacik@leibinger.freinet.de>.
	(new_thread): Rename poorly named local variable to
	"new_handler".
Sat Oct 24 18:34:59 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
	* global.c: Add TSD key management array and index declarations.
	* implement.h: Ditto for externs.
Fri Oct 23 00:08:09 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
	* implement.h (_PTHREAD_TSD_KEY_REUSE): Add enum.
	* private.c (_pthread_delete_thread): Add call to
	_pthread_destructor_run_all() to clean up the threads keys.
	* cleanup.c (_pthread_destructor_run_all): Check for no more dirty
	keys to run destructors on. Assume that the destructor call always
	succeeds and set the key value to NULL. | 
|  | * 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. | 
|  |  | 
|  | * 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. | 
|  | * 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. |