summaryrefslogtreecommitdiff
path: root/ANNOUNCE
AgeCommit message (Collapse)Author
2005-06-03''rpj
2005-05-19''rpj
2005-05-18''rpj
2005-05-08''rpj
2005-05-06''rpj
2005-04-26''v-2-4-0-releaserpj
2005-04-26''rpj
2005-04-25''rpj
2005-04-12''v-2-3-0-releaserpj
2005-04-04''v-2-2-0-releaserpj
2005-03-16''v-2-1-0-releaserpj
2005-03-16''v-2-0-0-releaserpj
2005-03-08compiler compatibility and bug fixesrpj
2005-01-25''rpj
2005-01-02''rpj
2005-01-01''snap-2005-01-03rpj
2004-11-23''rpj
2004-11-22Copyright updaterpj
2004-11-03Mutex, semaphore, thread ID, test suite changes - see ChangeLogsrpj
2004-06-22Add PTHREAD_{RECURSIVE,ERRORCHECK}_MUTEX_INITIALIZER{,_NP}snap-2004-06-22rpj
2004-05-17re-indentation, bug fixes, hooks for pre-emptive async cancelationrpj
2003-09-18Cleanup and fixes to thread priority management. Other minor changes.snap-2003-09-18rpj
2003-09-02Tested and passed.snap-2003-09-04rpj
2003-09-02Added cancelation of/from non-POSIX threads; minor fixes; minor changes.snap-2003-09-03rpj
2003-08-19Fix accidental corruption of some test cases.snap-2003-08-19rpj
2003-08-14Updated for snapshot release.snap-2003-08-15rpj
2003-08-14Reuse of thread IDs, improved thread ID validation, new tests, bug fixes.rpj
2003-05-10Release of snapshot 2003-05-10.snap-2003-05-10rpj
2002-11-04Update admin files.snap-2002-11-04rpj
2002-03-03Minor post-snapshot updates.rpj
2002-03-02Changes to documentation and makefiles.rpj
2002-03-02 * errno.c: Compiler directive was incorrectly including code.rpj
* pthread.h: Conditionally added some #defines from config.h needed when not building the library. e.g. NEED_ERRNO, NEED_SEM. (PTW32_DLLPORT): Now only defined if _DLL defined. (_errno): Compiler directive was incorrectly including prototype. * sched.h: Conditionally added some #defines from config.h needed when not building the library. * semaphore.h: Replace an instance of NEED_SEM that should have been NEED_ERRNO. This change currently has nil effect. * GNUmakefile: Correct some recent changes. * Makefile: Add rule to generate pre-processor output.
2002-02-23Upated.rpj
2002-02-23 * pthread_cond_destroy.c: Expand the time changerpj
critical section to solve deadlock problem. * pthread.c: Add all remaining C modules. * pthread.h: Use dllexport/dllimport attributes on functions to avoid using pthread.def. * sched.h: Likewise. * semaphore.h: Likewise. * GNUmakefile: Add new targets for single translation unit build to maximise inlining potential; generate pthread.def automatically. * Makefile: Likewise, but no longer uses pthread.def.
2002-02-18Update to reflect recent changes.rpj
2002-02-11Splitting files. See ChangeLog file for details.rpj
2002-02-08Update.rpj
2002-02-03Change #pragma inline_depth(8) to use empty () for default value.rpj
2002-02-02 * cancel.c: Rearranged some code and introduced checksrpj
to disable cancelation at the start of a thread's cancelation run to prevent double cancelation. The main problem arises if a thread is canceling and then receives a subsequent async cancel request. * private.c: Likewise. * condvar.c: Place pragmas around cleanup_push/pop to turn off inline optimisation (/Obn where n>0 - MSVC only). Various optimisation switches in MSVC turn this on, which interferes with the way that cleanup handlers are run in C++ EH and SEH code. Application code compiled with inline optimisation must also wrap cleanup_push/pop blocks with the pragmas, e.g. #pragma inline_depth(0) pthread_cleanup_push(...) ... pthread_cleanup_pop(...) #pragma inline_depth(8) * rwlock.c: Likewise. * mutex.c: Remove attempts to inline some functions. * signal.c: Modify misleading comment. tests/ * mutex8: New test. * mutex8n: New test. * mutex8e: New test. * mutex8r: New test. * cancel6a: New test. * cancel6d: New test. * cleanup0.c: Add pragmas for inline optimisation control. * cleanup1.c: Add pragmas for inline optimisation control. * cleanup2.c: Add pragmas for inline optimisation control. * cleanup3.c: Add pragmas for inline optimisation control. * condvar7.c: Add pragmas for inline optimisation control. * condvar8.c: Add pragmas for inline optimisation control. * condvar9.c: Add pragmas for inline optimisation control.
2002-01-312002-01-27 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* mutex.c (pthread_mutex_timedlock): New function suggested by Alexander Terekhov. The logic required to implement this properly came from Alexander, with some collaboration with Thomas Pfaff. (pthread_mutex_unlock): Wrap the waiters check and sema post in a critical section to prevent a race with pthread_mutex_timedlock. (ptw32_timed_semwait): New function; returns a special result if the absolute timeout parameter represents a time already passed when called; used by pthread_mutex_timedwait(). Have deliberately not reused the name "ptw32_sem_timedwait" because they are not the same routine. * condvar.c (ptw32_cond_timedwait): Use the new sem_timedwait() instead of ptw32_sem_timedwait(), which now has a different function. See previous. * implement.h: Remove prototype for ptw32_sem_timedwait. See next. (pthread_mutex_t_): Add critical section element for access to lock_idx during mutex post-timeout processing. * semaphore.h (sem_timedwait): See next. * semaphore.c (sem_timedwait): See next. * private.c (ptw32_sem_timedwait): Move to semaphore.c and rename as sem_timedwait(). 2002-01-18 Ross Johnson <rpj@special.ise.canberra.edu.au> * sync.c (pthread_join): Was getting the exit code from the calling thread rather than the joined thread if defined(__MINGW32__) && !defined(__MSVCRT__). 2002-01-15 Ross Johnson <rpj@special.ise.canberra.edu.au> * pthread.h: Unless the build explicitly defines __CLEANUP_SEH, __CLEANUP_CXX, or __CLEANUP_C, then the build defaults to __CLEANUP_C style cleanup. This style uses setjmp/longjmp in the cancelation and thread exit implementations and therefore won't do stack unwinding if linked to applications that have it (e.g. C++ apps). This is currently consistent with most/all commercial Unix POSIX threads implementations. * spin.c (pthread_spin_init): Edit renamed function call. * nonportable.c (pthread_num_processors_np): New. (pthread_getprocessors_np): Renamed to ptw32_getprocessors and moved to private.c. * private.c (pthread_getprocessors): Moved here from nonportable.c. * pthread.def (pthread_getprocessors_np): Removed from export list. * rwlock.c (pthread_rwlockattr_init): New. (pthread_rwlockattr_destroy): New. (pthread_rwlockattr_getpshared): New. (pthread_rwlockattr_setpshared): New.
2002-01-08Update docs.rpj
2002-01-07 * mutex.c (pthread_mutex_init): Remove criticalrpj
section calls. (pthread_mutex_destroy): Likewise. (pthread_mutex_unlock): Likewise. (pthread_mutex_trylock): Likewise; recursive mutexes now increment the lock count rather than return EBUSY; errorcheck mutexes return EDEADLCK rather than EBUSY. This behaviour is consistent with the Solaris pthreads implementation. * implement.h (pthread_mutex_t_): Remove critical section element - no longer needed.
2002-01-04 * attr.c (pthread_attr_setscope): Add more errorrpj
checking and actually store the scope value even though it's not really necessary. (pthread_attr_getscope): Return stored value. * implement.h (pthread_attr_t_): Add new scope element. * ANNOUNCE: Fix out of date comment next to pthread_attr_setscope in conformance section.
2001-07-18 * rwlock.c (pthread_rwlock_wrlock): Is allowed to berpj
a cancelation point; re-enable deferred cancelability around the CV call.
2001-07-11Assert that exactly one thread receives PTHREAD_BARRIER_SERIAL_THREAD.snap-2001-07-12rpj
2001-07-10Updated.rpj
2001-07-06Keeping ANNOUNCE up to date with code additions and fixes.rpj
2001-07-05Added new routines from POSIX 1003.1j. This is alpha level code.rpj
* spin.c: New module implementing spin locks. * barrier.c: New module implementing barriers. * pthread.h (_POSIX_SPIN_LOCKS): defined. (_POSIX_BARRIERS): Defined. (pthread_spin_*): Defined. (pthread_barrier*): Defined. (PTHREAD_BARRIER_SERIAL_THREAD): Defined. * implement.h (pthread_spinlock_t_): Defined. (pthread_barrier_t_): Defined. (pthread_barrierattr_t_): Defined. * mutex.c (pthread_mutex_lock): Return with the error if an auto-initialiser initialisation fails. * nonportable.c (pthread_getprocessors_np): New; gets the number of available processors for the current process.
2001-07-03Remove typo from semaphore.c.snap-2001-07-03rpj
Update ANNOUNCE to get ready for new snapshot.
2001-07-03Cosmetic changes.rpj