| Age | Commit message (Collapse) | Author | 
 | 
pthread.h.
	* pthread.h: Move implementation hidden definitions into
	implement.h.
	* implement.h: Move implementation hidden definitions from
	pthread.h. Add constants to index into the different handler stacks.
	* cleanup.c (_pthread_handler_push): Simplify args. Restructure.
	(_pthread_handler_pop): Simplify args. Restructure.
	(_pthread_handler_pop_all): Simplify args. Restructure.
 | 
 | 
* 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.
 | 
 | 
* pthread.h (pthread_atfork): Add function prototype.
	* fork.c (pthread_atfork): Preliminary implementation.
	(_pthread_fork): Likewise.
 | 
 | 
* cleanup.c (_pthread_cleanup_push): Implement.
	(_pthread_cleanup_pop): Implement.
	(_pthread_do_cancellation): Implement.
	These are private to the implementation. The real cleanup functions
	are macros. See below.
	* pthread.h (pthread_cleanup_push): Implement as a macro.
	(pthread_cleanup_pop): Implement as a macro.
	Because these are macros which start and end a block, the POSIX scoping
	requirement is observed. See the comment in the file.
	* exit.c (pthread_exit): Refine the code.
	* create.c (pthread_create): Code cleanup.
	* implement.h (RND_SIZEOF): Add RND_SIZEOF(T) to round sizeof(T)
	up to multiple of DWORD.
	Add function prototypes.
	* private.c (_pthread_getthreadindex): "*thread" should have been
	"thread". Detect empty slot fail condition.
 | 
 | 
 | 
 | 
 | 
 | 
* private.c (_pthread_getthreadindex): Implement.
	* pthread.h: Add application static data dependent on
	_PTHREADS_BUILD_DLL define. This is needed to avoid allocating
	non-sharable static data within the pthread DLL.
	* implement.h: Add _pthread_cleanup_stack_t, _pthread_cleanup_node_t
	and _PTHREAD_HASH_INDEX.
	* exit.c (pthread_exit): Begin work on cleanup and de-allocate
	thread-private storage.
	* create.c (pthread_create): Add thread to thread table.
	Keep a thread-private copy of the attributes with default values
	filled in when necessary. Same for the cleanup stack. Make
	pthread_create C run-time library friendly by using _beginthreadex()
	instead of CreateThread(). Fix error returns.
Sun Jul 19 16:26:23 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>
	* implement.h: Rename pthreads_thread_count to _pthread_threads_count.
	Create _pthread_threads_thread_t struct to keep thread specific data.
	* create.c: Rename pthreads_thread_count to _pthread_threads_count.
	(pthread_create): Handle errors from CreateThread().
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 |