diff options
| author | rpj <rpj> | 2000-08-18 08:02:29 +0000 | 
|---|---|---|
| committer | rpj <rpj> | 2000-08-18 08:02:29 +0000 | 
| commit | 11eb4dfd2d42417327fc205c649ea32ee623cf92 (patch) | |
| tree | 79b7a28890e779a4cc8d77e9289dba919d371bdd /README | |
| parent | 88de1621e4371cd118e1a98c9c08ff23c46e6899 (diff) | |
2000-08-18  Ross Johnson  <rpj@setup1.ise.canberra.edu.au>
        * 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.
Diffstat (limited to 'README')
| -rw-r--r-- | README | 42 | 
1 files changed, 39 insertions, 3 deletions
| @@ -52,15 +52,18 @@ The GNU library archive file name has changed to:  Known bugs in this snapshot
  ---------------------------
 -1. Running the test "join1.c" with the library built with Mingw32
 +1. Asynchronous cancelation only works on Intel X86 machines.
 +
 +2. Running the test "join1.c" with the library built with Mingw32
  and the GNUmakefile included, the test fails with a segmentation (invalid
  page access) exception. The fault appears to be in the assembler code
  emmitted by the compiler [to handle exception contexts] at the
  end of the try block in ptw32_threadStart().
 -2. There are problems using the libpthreadw32.a stub archive derived
 +3. There are problems using the libpthreadw32.a stub archive derived
  from either of pthreadVSE.dll or pthreadVCE.dll. The cleanup1.c test
 -fails.
 +fails. This is now an expected result of having different EH and cleanup
 +handler schemes in the library and application.
  Caveats
 @@ -85,6 +88,39 @@ Otherwise neither pthreads cancelation nor pthread_exit() will work  reliably.
 +Non-portable functions included in the library
 +----------------------------------------------
 +
 +void
 +pthread_mutexattr_setforcecs_np(pthread_mutexattr_t *attr,
 +				int forcecs);
 +
 +	Allows an application to force the library to use
 +	critical sections rather than win32 mutexes as
 +	the basis for any mutex that uses "attr".
 +	Critical sections are significantly faster than
 +	mutexes.
 +
 +	Values for "forcecs" are:
 +	PTHREAD_MUTEX_AUTO_CS_NP
 +		- allow the library to decide based on
 +		  availability of tryEnterCriticalSection()
 +	PTHREAD_MUTEX_FORCE_CS_NP
 +		- force use of critical sections, but you'd
 +		  better not try to use pthread_mutex_trylock()
 +		  on that mutex if you want your application
 +		  to work on all versions of Windows.
 +
 +HANDLE
 +pthread_getw32threadhandle_np(pthread_t thread);
 +
 +	Returns the win32 thread handle that the POSIX
 +	thread "thread" is running as.
 +
 +	Applications can use the win32 handle to set
 +	win32 specific attributes of the thread.
 +
 +
  Building under VC++ using either C++ EH or Structured EH
  --------------------------------------------------------
 | 
