summaryrefslogtreecommitdiff
path: root/README
AgeCommit message (Collapse)Author
2005-04-12''v-2-3-0-releaserpj
2005-04-01''rpj
2005-01-27''rpj
2004-11-22Copyright updaterpj
2004-11-03Mutex, semaphore, thread ID, test suite changes - see ChangeLogsrpj
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-08-14Reuse of thread IDs, improved thread ID validation, new tests, bug fixes.rpj
2002-11-04Update admin files.snap-2002-11-04rpj
2002-03-02Changes to documentation and makefiles.rpj
2002-02-11Splitting files. See ChangeLog file for details.rpj
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
2001-06-05 * nonportable.c (pthread_mutex_setdefaultkind_np):rpj
Remove - should not have been included in the first place. (pthread_mutex_getdefaultkind_np): Likewise. * global.c (ptw32_mutex_default_kind): Likewise. * mutex.c (pthread_mutex_init): Remove use of ptw32_mutex_default_kind. * pthread.h (pthread_mutex_setdefaultkind_np): Likewise. (pthread_mutex_getdefaultkind_np): Likewise. * pthread.def (pthread_mutexattr_setkind_np): Added. (pthread_mutexattr_getkind_np): Likewise. * README: Many changes that should have gone in before the last snapshot. * README.NONPORTABLE: New - referred to by ANNOUNCE but never created; documents the non-portable routines included in the library - moved from README with new routines added. * ANNOUNCE (pthread_mutexattr_setkind_np): Added to compliance list. (pthread_mutexattr_getkind_np): Likewise.
2000-12-29Updated.snap-2000-12-29rpj
2000-12-28./ChangeLog:rpj
2000-12-28 Ross Johnson <rpj@special.ise.canberra.edu.au> * private.c (ptw32_threadStart): Unhandled exceptions are now passed through to the system to deal with. This is consistent with normal Windows behaviour. C++ applications may use set_terminate() to override the default behaviour which is to call ptw32_terminate(). Ptw32_terminate() cleans up some POSIX thread stuff before calling the system default function which calls abort(). The users termination function should conform to standard C++ semantics which is to not return. It should exit the thread (call pthread_exit()) or exit the application. * private.c (ptw32_terminate): Added as the default set_terminate() function. It calls the system default function after cleaning up some POSIX thread stuff. * implement.h (ptw32_try_enter_critical_section): Move declaration. * global.c (ptw32_try_enter_critical_section): Moved from dll.c. * dll.c: Move process and thread attach/detach code into functions in nonportable.c. * nonportable.c (pthread_win32_process_attach_np): Process attach code from dll.c is now available to static linked applications. * nonportable.c (pthread_win32_process_detach_np): Likewise. * nonportable.c (pthread_win32_thread_attach_np): Likewise. * nonportable.c (pthread_win32_thread_detach_np): Likewise. * pthread.h: Add new non-portable prototypes for static linked applications. * GNUmakefile (OPT): Increase optimisation flag and remove debug info flag. * pthread.def: Add new non-portable exports for static linked applications. 2000-12-11 Ross Johnson <rpj@special.ise.canberra.edu.au> * FAQ: Update Answer 6 re getting a fully working Mingw32 built library. 2000-09-09 Ross Johnson <rpj@special.ise.canberra.edu.au> * pthread.h (ctime_r): Fix arg. ./tests/ChangeLog: 2000-12-28 Ross Johnson <rpj@special.ise.canberra.edu.au> * eyal1.c: Increase thread work loads. * exception2.c: New test. * exception3.c: New test. * Makefile: Add new tests exception2.c and exception3.c. * GNUmakefile: Likewise. 2000-12-11 Ross Johnson <rpj@special.ise.canberra.edu.au> * cleanup3.c: Remove unused variable. * cleanup2.c: Likewise. * exception1.c: Throw an exception rather than use a deliberate zero divide so that catch(...) will handle it under Mingw32. Mingw32 now builds the library correctly to pass all tests - see Thomas Pfaff's detailed instructions re needed changes to Mingw32 in the Pthreads-Win32 FAQ.
2000-09-08Note that pthreadGCE.dll is now built with Mingw32snap-2000-09-08rpj
but it still has known bugs.
2000-08-21Add explanation of internal name changes.rpj
2000-08-182000-08-18 Ross Johnson <rpj@setup1.ise.canberra.edu.au>rpj
* Several: Fix typos from scripted edit session yesterday. * nonportable.c (pthread_mutexattr_setforcecs_np): Moved this function from mutex.c. (pthread_getw32threadhandle_np): New function to return the win32 thread handle that the POSIX thread is using. * mutex.c (pthread_mutexattr_setforcecs_np): Moved to new file "nonportable.c". * pthread.h (PTW32_BUILD): Only redefine __except and catch compiler keywords if we aren't building the library (ie. PTW32_BUILD is not defined) - this is safer than defining and then undefining if not building the library. * implement.h: Remove __except and catch undefines. * Makefile (CFLAGS): Define PTW32_BUILD. * GNUmakefile (CFLAGS): Define PTW32_BUILD. * All appropriate: Change Pthread_exception* to ptw32_exception* to be consistent with internal identifier naming. * private.c (ptw32_throw): New function to provide a generic exception throw for all internal exceptions and EH schemes. (ptw32_threadStart): pthread_exit() value is now returned via the thread structure exitStatus element. * exit.c (pthread_exit): pthread_exit() value is now returned via the thread structure exitStatus element. * cancel.c (ptw32_cancel_self): Now uses ptw32_throw. (pthread_setcancelstate): Ditto. (pthread_setcanceltype): Ditto. (pthread_testcancel): Ditto. (pthread_cancel): Ditto. * misc.c (CancelableWait): Ditto. * exit.c (pthread_exit): Ditto. * All applicable: Change PTW32_ prefix to PTW32_ prefix to remove leading underscores from private library identifiers.
2000-08-172000-08-17 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* All applicable: Change _pthread_ prefix to ptw32_ prefix to remove leading underscores from private library identifiers (single and double leading underscores are reserved in the ANSI C standard for compiler implementations).
2000-08-14Fix typos.snap-2000-08-13rpj
2000-08-142000-08-13 Ross Johnson <rpj@special.ise.canberra.edu.au>rpj
* errno.c: Add _MD precompile condition; thus far had no effect when using /MD compile option but I thnk it should be there. * exit.c: Add __cplusplus to various #if lines; was compiling SEH code even when VC++ had C++ compile options. * private.c: ditto. * create.c (pthread_create): Add PT_STDCALL macro to function pointer arg in _beginthread(). * pthread.h: PT_STDCALL really does need to be defined in both this and impliment.h; don't set it to __cdecl - this macro is only used to extend function pointer casting for functions that will be passed as parameters. (~PThreadCleanup): add cast and group expression. (_errno): Add _MD compile conditional. (PtW32NoCatchWarn): Change pragma message. * implement.h: Move and change PT_STDCALL define. * need_errno.h: Add _MD to compilation conditional. * GNUmakefile: Substantial rewrite for new naming convention; set for nil optimisation (turn it up when we have a working library build; add target "fake.a" to build a libpthreadw32.a from the VC++ built DLL pthreadVCE.dll. * pthread.def (LIBRARY): Don't specify in the .def file - it is specified on the linker command line since we now use the same .def file for variously named .dlls. * Makefile: Substantial rewrite for new naming convention; default nmake target only issues a help message; run nmake with specific target corresponding to the EH scheme being used. * README: Update information; add naming convention explanation. * ANNOUNCE: Update information. 2000-08-12 Ross Johnson <rpj@special.ise.canberra.edu.au> * pthread.h: Add compile-time message when using MSC_VER compiler and C++ EH to warn application programmers to use PtW32Catch instead of catch(...) if they want cancelation and pthread_exit to work. * implement.h: Remove #include <semaphore.h>; we use our own local semaphore.h. tests/ChangeLog: 2000-08-13 Ross Johnson <rpj@special.ise.canberra.edu.au> * condvar3.c: Minor change to eliminate compiler warning. * condvar4.c: ditto. * condvar5.c: ditto. * condvar6.c: ditto. * condvar7.c: ditto. * condvar8.c: ditto. * condvar9.c: ditto. * exit1.c: Function needed return statement. * cleanup1.c: Remove unnecessary printf arg. * cleanup2.c: Fix cast. * rwlock6.c: Fix casts. * exception1.c (PtW32CatchAll): Had the wrong name; fix casts. * cancel3.c: Remove unused waitLock variable. * GNUmakefile: Change library/dll naming; add new tests; general minor changes. * Makefile: Change library/dll naming; add targets for testing each of the two VC++ EH scheme versions; default target now issues help message; compile warnings now interpreted as errors to stop the make; add new tests; restructure to remove prerequisites needed otherwise. * README: Updated.
2000-08-112000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au>snap-2000-08-10rpj
* cleanup.c (pthread_pop_cleanup): Remove _pthread prefix from __except and catch keywords; implement.h now simply undefines _pthread__except and _pthread_catch if defined; VC++ was not textually substituting _pthread_catch etc back to catch as it was redefined; the reason for using the prefixed version was to make it clear that it was not using the pthread.h redefined catch keyword. * private.c (_pthread_threadStart): Ditto. (_pthread_callUserDestroyRoutines): Ditto. * implement.h (_pthread__except): Remove #define. (_pthread_catch): Remove #define. * GNUmakefile (pthread.a): New target to build libpthread32.a from pthread.dll using dlltool. * buildlib.bat: Duplicate cl commands with args to build C++ EH version of pthread.dll; use of .bat files is redundant now that nmake compatible Makefile is included; used as a kludge only now. * Makefile: Localise some macros and fix up the clean: target to extend it and work properly. * CONTRIBUTORS: Add contributors. * ANNOUNCE: Updated. * README: Updated. tests/ChangeLog: 2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au> * eyal1.c (main): Change implicit cast to explicit cast when passing "print_server" function pointer; G++ no longer allows implicit func parameter casts. * cleanup1.c: Remove unused "waitLock". (main): Fix implicit parameter cast. * cancel2.c (main): Fix implicit parameter cast. * cancel4.c (main): Fix implicit parameter cast. * cancel3.c (main): Fix implicit parameter cast. * GNUmakefile: Renamed from Makefile; Add missing cancel1 and cancel2 test targets. * Makefile: Converted for use with MS nmake.
2000-01-04Main changes (see ChangeLog diff for details and attributions):-rpj
- asynchronous cancellation added - attempt to hide internal exceptions from applications - kernel32 load/free problem fixed - new tests - changes only to comments in some tests
1999-09-17*** empty log message ***snap-1999-09-17rpj
1999-04-06Wed Apr 7 09:37:00 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* *.c (comments): Remove individual attributions - these are documented sufficiently elsewhere. * implement.h (pthread.h): Remove extraneous include.
1999-03-23Wed Mar 24 11:32:07 1999 Ross Johnson <rpj@swan.canberra.edu.au>rpj
* misc.c (CancelableWait): Initialise exceptionInformation[2]. (pthread_self): Get a real Win32 thread handle for implicit threads. * cancel.c (pthread_testcancel): Initialise exceptionInformation[2]. * implement.h (SE_INFORMATION): Fix values. * private.c (_pthread_threadDestroy): Close the thread handle. Fri Mar 19 12:57:27 1999 Ross Johnson <rpj@swan.canberra.edu.au> * cancel.c (comments): Update and cleanup. Fri Mar 19 09:12:59 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au> * private.c (_pthread_threadStart): status returns PTHREAD_CANCELED. * pthread.h (PTHREAD_CANCELED): defined.
1999-03-16Tue Mar 16 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* all: Add GNU LGPL and Copyright and Warranty.
1999-03-08Resolve merge conflicts; minor comment changes.rpj
1999-02-18Update README.snap-1999-02-19rpj
1999-02-09Wed Feb 10 12:49:11 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>snap-1999-02-10rpj
* configure: Various temporary changes. - Kevin Ruland <Kevin.Ruland@anheuser-busch.com> * README: Update.
1999-01-22Sat Jan 23 17:36:40 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* README: Updated.
1999-01-08Sat Jan 9 14:32:08 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>rpj
* implement.h: Compile-time switch for CYGWIN derived environments to use CreateThread instead of _beginthreadex. Ditto for ExitThread. Patch provided by Anders Norlander <anorland@hem2.passagen.se>.
1998-12-101998-12-11 Ben Elliston <bje@toilet.to.cygnus.com>bje
* README: Update info about subscribing to the mailing list.
1998-12-06Thu Dec 3 13:32:00 1998 Ross Johnson <rpj@ise.canberra.edu.au>rpj
* README: Correct cygwin32 compatibility statement.
1998-09-08Updated.bje
1998-07-17 * README: Grammar fix.bje
1998-07-09Initial revision.bje