summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2003-08-19Fix missing constants.rpj
2003-08-14Updated for snapshot release.snap-2003-08-15rpj
2003-08-14Minor edit.rpj
2003-08-14Reuse of thread IDs, improved thread ID validation, new tests, bug fixes.rpj
2003-08-13Bug fixes plus adaptation to current MinGW/MsysDTK environment. Changes to ↵rpj
tests/benchmarks.
2003-08-12Invalid thread param now returns ESRCH instead of EINVAL.rpj
2003-06-27Free the spinlock struct in ALL appropriate cases.rpj
2003-06-24pthread_spin_destroy was not freeing the spinlock struct.rpj
2003-06-21pthread_mutex_destroy.c (pthread_mutex_destroy): When calledrpj
with a recursive mutex that was locked by the current thread, the function was failing with a success return code.
2003-05-15Fixed memory leaks caused by destructors calling pthreads routines at thread ↵rpj
exit.
2003-05-14Fix compiler flag in Visual Studio project file.rpj
2003-05-10Release of snapshot 2003-05-10.snap-2003-05-10rpj
2003-03-04Indenting.rpj
2003-03-04 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Fix failure torpj
set ownership of mutex on second grab after abstime timeout.
2002-12-18Adjust attribution.rpj
2002-12-17 * pthread_mutex_lock.c (ptw32_semwait): New static routine to providerpj
a non-cancelable sem_wait() function. This is consistent with the way that pthread_mutex_timedlock.c does it. (pthread_mutex_lock): Use ptw32_semwait() instead of sem_wait().
2002-12-112002-12-11 Thomas Pfaff <tpfaff@gmx.net>rpj
* pthread_mutex_trylock.c: Should return EBUSY rather than EDEADLK. * pthread_mutex_destroy.c: Remove redundant ownership test (the trylock call does this for us); do not destroy a recursively locked mutex.
2002-11-04Update admin files.snap-2002-11-04rpj
2002-09-202002-09-20 Michael Johnson <michaelj@maine.rr.com>rpj
* pthread_cond_destroy.c (pthread_cond_destroy): When two different threads exist, and one is attempting to destroy a condition variable while the other is attempting to initialize a condition variable that was created with PTHREAD_COND_INITIALIZER, a deadlock can occur. Shrink the ptw32_cond_list_lock critical section to fix it.
2002-07-30*** empty log message ***rpj
2002-07-30* pthread_cond_wait.c (ptw32_cond_wait_cleanup):rpj
Remove code designed to avoid/prevent spurious wakeup problems. It is believed that the sem_timedwait() call is consuming a CV signal that it shouldn't and this is breaking the avoidance logic.
2002-07-30* sem_timedwait.c (sem_timedwait): Tighten checks forrpj
unreasonable abstime values - that would result in unexpected timeout values. * w32_CancelableWait.c (ptw32_cancelable_wait): Tighten up return value checking and add comments.
2002-06-04*** empty log message ***rpj
2002-06-04Another attempt to get sem_getvalue working.rpj
2002-06-03An attempt to get sem_getvalue working properly.rpj
2002-03-03Minor post-snapshot updates.rpj
2002-03-02Made Item 1 description more accurate.rpj
2002-03-02Add file and add entry to tests/ChangeLog.snap-2002-03-02rpj
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-27 * exception3.c (terminateFunction): For MSVC++, callrpj
exit() rather than pthread_exit(). Add comments to explain why. * rwlock2_t.c: New test. * rwlock3_t.c: New test. * rwlock4_t.c: New test. * rwlock5_t.c: New test. * rwlock6_t.c: New test. * rwlock6_t2.c: New test. * rwlock6.c (main): Swap thread and result variables to correspond to actual thread functions. * rwlock1.c: Change test description comment to correspond to the actual test.
2002-02-23Upated.rpj
2002-02-23Add missing file.rpj
2002-02-23New functions from POSIX 1003.1 2001. Untested.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-20Changes to comments.rpj
2002-02-20implement.h: Refine use of _LPLONG and _LONG.rpj
pthread_cond_init.c: Whitespace.
2002-02-20Enter the time change critical section earlierrpj
2002-02-20spin4.c: Try to force the main thread to wait.rpj
2002-02-20Add missing test files.rpj
2002-02-18Update to reflect recent changes.rpj
2002-02-18Major reorganisation of source code; new routine and tests added.rpj
2002-02-11Splitting files. See ChangeLog file for details.rpj
2002-02-08New tests.rpj
2002-02-08Update.rpj
2002-02-08Copyright notice updates; module splitting; POSIX versionrpj
conditional compilation; refinements; bug fixes. See the ChangeLog.
2002-02-07pthread_delay_np: Add missing "return(0)".rpj
2002-02-07 * nonportable.c (pthread_delay_np): Make a truerpj
cancelation point. Deferred cancels will interrupt the wait.
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.