SourceForge has been redesigned. Learn more.
Close

Code Log


Commit Date  
[d17546] (snap-1999-02-19) by rpj rpj

Update README.

1999-02-18 05:02:40 Tree
[f0f43f] by rpj rpj

Sat Feb 18 16:2s1703:30 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* misc.c (pthread_equal): Fix inverted result.

1999-02-18 03:13:26 Tree
[dbb2c8] by rpj rpj

Add tests/README.

1999-02-18 02:47:44 Tree
[2fe22a] by rpj rpj

Add new compiler specific scripts for running tests.

1999-02-18 02:39:47 Tree
[b47991] by rpj rpj

Sat Feb 18 16:2s1703:30 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* Makefile.in: Use libpthread32.a as the name of the DLL export
library instead of pthread.lib.
* condvar.c (pthread_cond_init): cv could have been used unitialised;
initialise.
* create.c (pthread_create): parms could have been used unitialised;
initialise.
Add "Makefile" for people who don't want to (or can't) run ./configure.

1999-02-18 01:12:37 Tree
[4283bb] by rpj rpj

Add config.h. This file is generated by running the configure script.
It is being added for those not building under Cygwin or similar
environment and who therefore can't run ./configure.

1999-02-17 21:36:19 Tree
[5fac2f] by rpj rpj

Sat Feb 18 16:2s1703:30 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (struct pthread_once_t_): Remove redefinition.

1999-02-17 21:19:08 Tree
[44f6c8] by rpj rpj

Sat Feb 13 03:03:30 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (struct pthread_once_t_): Replaced.
* misc.c (pthread_once): Replace with John Bossom's version;
has lighter weight serialisation; fixes problem of not holding
competing threads until after the init_routine completes.

1999-02-12 08:19:34 Tree
[eb222b] by rpj rpj

Update FAQ and MAINTAINERS.

1999-02-10 23:20:18 Tree
[952437] by rpj rpj

Thu Feb 11 13:34:14 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* misc.c (CancelableWait): Change C++ exception throw.
* sync.c (pthread_join): Change FIXME comment - issue resolved.

1999-02-10 21:45:28 Tree
[fdfe65] by bje bje

Merged from precompiled branch. Don't mind me!

1999-02-10 20:04:59 Tree
[a33932] (snap-1999-02-10) by rpj rpj

Wed Feb 10 12:49:11 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* configure: Various temporary changes.
- Kevin Ruland <Kevin.Ruland@anheuser-busch.com>
* README: Update.

1999-02-09 18:28:59 Tree
[721979] by rpj rpj

Wed Feb 10 12:49:11 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.def (pthread_attr_getstackaddr): uncomment
(pthread_attr_setstackaddr): uncomment

1999-02-09 17:55:00 Tree
[a3db25] (snapshot-1999-02-10) by rpj rpj

Thu Feb 4 10:07:28 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* global.c: Remove Pthread_exception instantiation.
* cancel.c (pthread_testcancel): Change C++ exception throw.
* implement.h: Remove extern declaration.

1999-02-09 14:59:13 Tree
[9e253e] by rpj rpj

Fri Feb 5 13:42:30 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* semaphore.c: Comment format changes.
Wed Feb 3 13:04:44 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* cleanup.c: Rename _pthread_*_cleanup() to pthread_*_cleanup().
* pthread.def: Ditto.
* pthread.h: Ditto.
* pthread.def (pthread_cleanup_push): Remove from export list;
the function is defined as a macro under all compilers.
(pthread_cleanup_pop): Ditto.
* pthread.h: Remove #if defined().

1999-02-08 21:19:53 Tree
[856068] by rpj rpj

Wed Feb 3 10:13:48 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* sync.c (pthread_join): Check for NULL value_ptr arg;
check for detached threads.

1999-02-02 15:16:42 Tree
[cc29ad] by rpj rpj

Mods to compile under Mingw32 egcs.
Tue Feb 2 18:07:43 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* implement.h: Add #include <pthread.h>.
Change sem_t to _pthread_sem_t.
Various patches by Kevin Ruland <Kevin.Ruland@anheuser-busch.com>
* signal.c (pthread_sigmask): Add and modify casts.
Reverse LHS/RHS bitwise assignments.
* pthread.h: Remove #include <semaphore.h>.
(_PTHREAD_ATTR_VALID): Add cast.
(struct pthread_t_): Add sigmask element.
* dll.c: Add "extern C" for DLLMain.
(DllMain): Add cast.
* create.c (pthread_create): Set sigmask in thread.
* condvar.c: Remove #include. Change sem_* to _pthread_sem_*.
* attr.c: Changed #include.
* Makefile.in: Additional targets and changes to build the library
as a DLL.
Fri Jan 29 11:56:28 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* Makefile.in (OBJS): Add semaphore.o to list.
* semaphore.c (_pthread_sem_timedwait): Move from private.c.
Rename sem_* to _pthread_sem_*.
* pthread.h (pthread_cond_t): Change type of sem_t.
_POSIX_SEMAPHORES no longer defined.
* semaphore.h: Contents moved to implement.h.
Removed from source tree.
* implement.h: Add semaphore function prototypes and ename all
functions to prepend '_pthread_'. They are
now private to the pthreads-win32 implementation.
* private.c: Change #warning.
Move _pthread_sem_timedwait() to semaphore.c.
* cleanup.c: Change #warning.
* misc.c: Remove #include <errno.h>
* pthread.def: Cleanup CVS merge conflicts.
* global.c: Ditto.
* ChangeLog: Ditto.
* cleanup.c: Ditto.

1999-02-02 02:01:56 Tree
[623733] by rpj rpj

Fixing problems building with GNU compilers:
Sun Jan 24 01:34:52 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* semaphore.c (sem_wait): Remove second arg to
pthreadCancelableWait() call.
Fri Jan 22 14:31:59 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* Makefile.in (CFLAGS): Remove -fhandle-exceptions. Not needed
with egcs. Add -g for debugging.
* create.c (pthread_create): Replace __stdcall with PT_STDCALL
macro. This is a hack and must be fixed.
* misc.c (CancelableWait): Remove redundant statement.
* mutex.c (pthread_mutexattr_init): Cast calloc return value.
* misc.c (CancelableWait): Add cast.
(pthread_self): Add cast.
* exit.c (pthread_exit): Add cast.
* condvar.c (pthread_condattr_init): Cast calloc return value.
* cleanup.c: Reorganise conditional compilation.
* attr.c (pthread_attr_init): Remove unused 'result'.
Cast malloc return value.
* private.c (_pthread_callUserDestroyRoutines): Redo conditional
compilation.
* misc.c (CancelableWait): C++ version uses 'throw'.
* cancel.c (pthread_testcancel): Ditto.
* implement.h (class pthread_exception): Define for C++.
* pthread.h: Fix C, C++, and Win32 SEH condition compilation
mayhem around pthread_cleanup_* defines. C++ version now uses John
Bossom's cleanup handlers.
(pthread_attr_t): Make 'valid' unsigned.
Define '_timeb' as 'timeb' for Ming32.
Define PT_STDCALL as nothing for Mingw32. May be temporary.
* cancel.c (pthread_testcancel): Cast return value.

1999-01-23 06:58:47 Tree
[984d83] (snapshot-1999-01-23) by rpj rpj

Sat Jan 23 17:36:40 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (PTHREAD_MUTEX_AUTO_CS_NP): New.
(PTHREAD_MUTEX_FORCE_CS_NP): New.

1999-01-22 23:54:23 Tree
[fe5a7b] by rpj rpj

Sat Jan 23 17:36:40 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* README: Updated.

1999-01-22 22:38:56 Tree
[1f803d] by rpj rpj

Wed Jan 20 09:31:28 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (pthread_mutexattr_t): Changed to a pointer.
* mutex.c (pthread_mutex_init): Conditionally create Win32 mutex
- from John Bossom's implementation.
(pthread_mutex_destroy): Conditionally close Win32 mutex
- from John Bossom's implementation.
(pthread_mutexattr_init): Replaced by John Bossom's version.
(pthread_mutexattr_destroy): Ditto.
(pthread_mutexattr_getpshared): New function from John Bossom's
implementation.
(pthread_mutexattr_setpshared): New function from John Bossom's
implementation.
Tue Jan 19 18:27:42 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* pthread.h (pthreadCancelableTimedWait): New prototype.
(pthreadCancelableWait): Remove second argument.
* misc.c (CancelableWait): New static function is
pthreadCancelableWait() renamed.
(pthreadCancelableWait): Now just calls CancelableWait() with
INFINITE timeout.
(pthreadCancelableTimedWait): Just calls CancelableWait()
with passed in timeout.
* private.c (_pthread_sem_timedwait): 'abstime' arg really is
absolute time. Calculate relative time to wait from current
time before passing timeout to new routine
pthreadCancelableTimedWait().
- Scott Lightner <scott@curriculum.com>
Tue Jan 19 10:27:39 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (pthread_mutexattr_setforcecs_np): New prototype.
* mutex.c (pthread_mutexattr_init): Init 'pshared' and 'forcecs'
attributes to 0.
(pthread_mutexattr_setforcecs_np): New function (not portable).
* pthread.h (pthread_mutex_t):
Add 'mutex' element. Set to NULL in PTHREAD_MUTEX_INITIALIZER.
The pthread_mutex_*() routines will try to optimise performance
by choosing either mutexes or critical sections as the basis
for pthread mutexes for each indevidual mutex.
(pthread_mutexattr_t_): Add 'forcecs' element.
Some applications may choose to force use of critical sections
if they know that:-
the mutex is PROCESS_PRIVATE and,
either the OS supports TryEnterCriticalSection() or
pthread_mutex_trylock() will never be called on the mutex.
This attribute will be setable via a non-portable routine.
Note: We don't yet support PROCESS_SHARED mutexes, so the
implementation as it stands will default to Win32 mutexes only if
the OS doesn't support TryEnterCriticalSection. On Win9x, and early
versions of NT 'forcecs' will need to be set in order to get
critical section based mutexes.
Sun Jan 17 12:01:26 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* pthread.h (PTHREAD_MUTEX_INITIALIZER): Init new 'staticinit'
value to '1' and existing 'valid' value to '1'.
* global.c (_pthread_mutex_test_init_lock): Add.
* implement.h (_pthread_mutex_test_init_lock.): Add extern.
* private.c (_pthread_processInitialize): Init critical section for
global lock used by _mutex_check_need_init().
(_pthread_processTerminate): Ditto (:s/Init/Destroy/).
* dll.c (dllMain): Move call to FreeLibrary() so that it is only
called once when the process detaches.
* mutex.c (_mutex_check_need_init): New static function to test
and init PTHREAD_MUTEX_INITIALIZER mutexes. Provides serialised
access to the internal state of the uninitialised static mutex.
Called from pthread_mutex_trylock() and pthread_mutex_lock() which
do a quick unguarded test to check if _mutex_check_need_init()
needs to be called. This is safe as the test is conservative
and is repeated inside the guarded section of
_mutex_check_need_init(). Thus in all calls except the first
calls to lock static mutexes, the additional overhead to lock any
mutex is a single memory fetch and test for zero.
* pthread.h (pthread_mutex_t_): Add 'staticinit' member. Mutexes
initialised by PTHREAD_MUTEX_INITIALIZER aren't really initialised
until the first attempt to lock it. Using the 'valid'
flag (which flags the mutex as destroyed or not) to record this
information would be messy. It is possible for a statically
initialised mutex such as this to be destroyed before ever being
used.
* mutex.c (pthread_mutex_trylock): Call _mutex_check_need_init()
to test/init PTHREAD_MUTEX_INITIALIZER mutexes.
(pthread_mutex_lock): Ditto.
(pthread_mutex_unlock): Add check to ensure we don't try to unlock
an unitialised static mutex.
(pthread_mutex_destroy): Add check to ensure we don't try to delete
a critical section that we never created. Allows us to destroy
a static mutex that has never been locked (and hence initialised).
(pthread_mutex_init): Set 'staticinit' flag to 0 for the new mutex.

1999-01-20 00:01:23 Tree
[20f77e] by rpj rpj

Tue Jan 19 18:27:42 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* pthread.h (pthreadCancelableTimedWait): New prototype.
(pthreadCancelableWait): Remove second argument.
* misc.c (CancelableWait): New static function is
pthreadCancelableWait() renamed.
(pthreadCancelableWait): Now just calls CancelableWait() with
INFINITE timeout.
(pthreadCancelableTimedWait): Just calls CancelableWait()
with passed in timeout.
* private.c (_pthread_sem_timedwait): 'abstime' arg really is
absolute time. Calculate relative time to wait from current
time before passing timeout to new routine
pthreadCancelableTimedWait().
- Scott Lightner <scott@curriculum.com>

1999-01-18 23:50:07 Tree
[9b7546] (snapshot-1999-01-17) by rpj rpj

Sun Jan 17 12:01:26 1999 Ross Johnson <rpj@ixobrychus.canberra.edu.au>
* private.c (_pthread_sem_timedwait): Move from semaphore.c.
* semaphore.c : Remove redundant #includes.
(_pthread_sem_timedwait): Move to private.c.
(sem_wait): Add missing abstime arg to pthreadCancelableWait() call.
1999-01-17 Ross Johnson <rpj@ise.canberra.edu.au>
* runtest: New script to build and run a test in the tests directory.

1999-01-16 17:34:53 Tree
[677bfb] by rpj rpj

Fri Jan 15 15:41:28 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* pthread.h: Add new 'abstime' arg to pthreadCancelableWait()
prototype.
* condvar.c (cond_timedwait): New generalised function called by
both pthread_cond_wait() and pthread_cond_timedwait(). This is
essentially pthread_cond_wait() renamed and modified to add the
'abstime' arg and call the new _pthread_sem_timedwait() instead of
sem_wait().
(pthread_cond_wait): Now just calls the internal static
function cond_timedwait() with an INFINITE wait.
(pthread_cond_timedwait): Now implemented. Calls the internal
static function cond_timedwait().
* implement.h (_pthread_sem_timedwait): New internal function
prototype.
* misc.c (pthreadCancelableWait): Added new 'abstime' argument
to allow shorter than INFINITE wait.
* semaphore.c (_pthread_sem_timedwait): New function for internal
use. This is essentially sem_wait() modified to add the
'abstime' arg and call the modified (see above)
pthreadCancelableWait().

1999-01-14 22:33:54 Tree
[d0b367] by rpj rpj

Thu Jan 14 14:27:13 1999 Ross Johnson <rpj@swan.canberra.edu.au>
* cleanup.c: Correct _cplusplus to __cplusplus wherever used.
* Makefile.in: Add CC=g++ and add -fhandle-exceptions to CFLAGS.
The derived Makefile will compile all units of the package as C++
so that those which include try/catch exception handling should work
properly. The package should compile ok if CC=gcc, however, exception
handling will not be included and thus thread cancellation, for
example, will not work.
* cleanup.c (_pthread_pop_cleanup): Add #warning to compile this
file as C++ if using a cygwin32 environment. Perhaps the whole package
should be compiled using g++ under cygwin.
* private.c (_pthread_threadStart): Change #error directive
into #warning and bracket for __CYGWIN__ and derivative compilers.

1999-01-13 20:53:49 Tree
Older >