diff options
Diffstat (limited to 'ANNOUNCE')
| -rw-r--r-- | ANNOUNCE | 774 | 
1 files changed, 403 insertions, 371 deletions
| @@ -1,371 +1,403 @@ - -                 PTHREADS-WIN32 SNAPSHOT 2000-??-?? -                 ---------------------------------- -       Web Site: http://sourceware.cygnus.com/pthreads-win32/ -      FTP Site: ftp://sourceware.cygnus.com/pub/pthreads-win32 -        Coordinator: Ross Johnson <rpj@ise.canberra.edu.au> - - -We are pleased to announce the availability of a new snapshot of -Pthreads-win32, an Open Source Software (OSS) implementation of the -Threads component of the POSIX 1003.1c 1995 Standard for Microsoft's -Win32 environment. Some functions from POSIX 1003.1b are also -supported including semaphores. - -Pthreads-win32 is free software, distributed under the GNU Library -General Public License (LGPL). - -Please see the 'Acknowledgements' section at the end of this -announcement for the list of contributors. - - -Change Summary (since the last snapshot) ----------------------------------------- - -(See the ChangeLog file for details.) - -New: --	asynchronous cancelation (Jason Nye) --	Makefile compatible with MS nmake to replace -	buildlib.bat - -Bugs fixed: --	kernel32 load/free problem, --	attempt to hide internel exceptions from application -	exception handlers (__try/__except and try/catch blocks) - -Some new tests have been added. - - -Level of standards conformance ------------------------------- - -The following POSIX 1003.1c 1995 options are defined: - -      _POSIX_THREADS -      _POSIX_THREAD_SAFE_FUNCTIONS -      _POSIX_THREAD_ATTR_STACKSIZE - - -The following POSIX 1003.1c 1995 options are not defined: - -      _POSIX_THREAD_ATTR_STACKADDR -      _POSIX_THREAD_PRIORITY_SCHEDULING -      _POSIX_THREAD_PRIO_INHERIT -      _POSIX_THREAD_PRIO_PROTECT -      _POSIX_THREAD_PROCESS_SHARED - -The following POSIX 1003.1b option is defined: - -      _POSIX_SEMAPHORES - -The following functions are implemented: - -      --------------------------- -      PThreads -      --------------------------- -      pthread_attr_init -      pthread_attr_destroy -      pthread_attr_getdetachstate -      pthread_attr_getstackaddr -      pthread_attr_getstacksize -      pthread_attr_setdetachstate -      pthread_attr_setstackaddr -      pthread_attr_setstacksize - -      pthread_create -      pthread_detach -      pthread_equal -      pthread_exit -      pthread_join -      pthread_once -      pthread_self - -      pthread_cancel -      pthread_cleanup_pop -      pthread_cleanup_push -      pthread_setcancelstate -      pthread_setcanceltype -      pthread_testcancel -           -      --------------------------- -      Thread Specific Data    -      --------------------------- -      pthread_key_create -      pthread_key_delete -      pthread_setspecific -      pthread_getspecific -                 -      --------------------------- -      Mutexes -      --------------------------- -      pthread_mutexattr_init -      pthread_mutexattr_destroy -      pthread_mutexattr_getpshared -      pthread_mutexattr_setpshared - -      pthread_mutex_init -      pthread_mutex_destroy -      pthread_mutex_lock -      pthread_mutex_trylock       -      pthread_mutex_unlock - -      --------------------------- -      Condition Variables -      --------------------------- -      pthread_condattr_init -      pthread_condattr_destroy -      pthread_condattr_getpshared -      pthread_condattr_setpshared - -      pthread_cond_init -      pthread_cond_destroy -      pthread_cond_wait -      pthread_cond_timedwait -      pthread_cond_signal -      pthread_cond_broadcast   - -      --------------------------- -      Read/Write Locks: -      --------------------------- -      pthread_rwlock_init -      pthread_rwlock_destroy -      pthread_rwlock_tryrdlock -      pthread_rwlock_trywrlock -      pthread_rwlock_rdlock -      pthread_rwlock_rwlock -      pthread_rwlock_unlock - -      --------------------------- -      Semaphores -      --------------------------- -      sem_init               (POSIX 1b) -      sem_destroy            (POSIX 1b) -      sem_post               (POSIX 1b) -      sem_wait               (POSIX 1b) -      sem_trywait            (POSIX 1b) -      sem_open               (POSIX 1b - returns an error ENOSYS) -      sem_close              (POSIX 1b - returns an error ENOSYS) -      sem_unlink             (POSIX 1b - returns an error ENOSYS) -      sem_getvalue           (POSIX 1b - returns an error ENOSYS) - -      --------------------------- -      RealTime Scheduling -      --------------------------- -      pthread_attr_getschedparam   -      pthread_attr_setschedparam   -      pthread_getschedparam -      pthread_setschedparam -      sched_get_priority_max (POSIX 1b) -      sched_get_priority_min (POSIX 1b) -      sched_yield            (POSIX 1b) - -      --------------------------- -      Signals -      --------------------------- -      pthread_sigmask - -      --------------------------- -      Static Initializers (macros) -      --------------------------- -      PTHREAD_ONCE_INIT -      PTHREAD_MUTEX_INITIALIZER -      PTHREAD_COND_INITIALIZER -      PTHREAD_RWLOCK_INITIALIZER -       -      --------------------------- -      Thread-Safe C Runtime Library (macros) -      --------------------------- -      strtok_r -      asctime_r -      ctime_r -      gmtime_r -      localtime_r -      rand_r - - -The following functions are not implemented: -       -      --------------------------- -      RealTime Scheduling -      --------------------------- -      pthread_attr_getinheritsched -      pthread_attr_getschedpolicy -      pthread_attr_getscope -      pthread_attr_setinheritsched -      pthread_attr_setschedpolicy -      pthread_attr_setscope -      pthread_mutex_getprioceiling -      pthread_mutex_setprioceiling -      pthread_mutex_attr_getprioceiling -      pthread_mutex_attr_getprotocol -      pthread_mutex_attr_setprioceiling -      pthread_mutex_attr_setprotocol -       -      --------------------------- -      Fork Handlers -      --------------------------- -      pthread_atfork - -      --------------------------- -      Stdio -      ---------------------------  -      flockfile -      ftrylockfile -      funlockfile -      getc_unlocked -      getchar_unlocked   -      putc_unlocked -      putchar_unlocked - -      --------------------------- -      Thread-Safe C Runtime Library -      --------------------------- -      readdir_r -      getgrgid_r -      getgrnam_r -      getpwuid_r -      getpwnam_r -       -      --------------------------- -      Signals -      --------------------------- -      pthread_kill -      sigtimedwait -      sigwait -      sigwaitinfo -       -       -The library includes two non-API functions for creating cancellation -points in applications and libraries: -       -      pthreadCancelableWait -      pthreadCancelableTimedWait - -       -Availability -------------  - -The prebuilt DLL, export libs (for both MSVC and Mingw32), and the header -files (pthread.h, semaphore.h, sched.h) are available along with the -complete source code. - -The source code can be found at: - -	ftp://sourceware.cygnus.com/pub/pthreads-win32 - -and as individual source code files at - -	ftp://sourceware.cygnus.com/pub/pthreads-win32/source - -The pre-built DLL, export libraries and include files can be found at: - -	ftp://sourceware.cygnus.com/pub/pthreads-win32/dll-latest - - -       -Mailing List  -------------   -       -There is a mailing list for discussing pthreads on Win32. To join, -send email to: - -        pthreads-win32-subscribe@sourceware.cygnus.com -       - -Application Development Environments ------------------------------------- -       -MSVC: -MSVC works. - -Mingw32: (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/egcs-1.1.1/) -Mingw32 must use the thread-safe MSVCRT library (see the FAQ). You can link -against the export library libpthread32.a built under Mingw32 -but you must run your application with the version of pthread.dll built -with MSVC. -       -Cygwin: (http://sourceware.cygnus.com/cygwin/) -Cygwin aims to provide a complete POSIX environment on top of Win32, including -threads. When this is complete, developers using Cygwin will not need -pthreads-win32. At this time, Cygwin has preliminary support for multithreaded -development, however, this is not turned on by default. We have not tested -pthreads-win32 against Cygwin. - -Generally: -For convenience, the following pre-built files are available on the FTP site -(see Availability above): - -        pthread.h       - for POSIX 1c threads -        semaphore.h     - for POSIX 1b semaphores -        sched.h         - for POSIX 1b scheduling -        pthread.dll     - built with MSVC cl compiler on NT4.0 -        pthread.lib     - built with MSVC cl compiler on NT4.0 -        libpthread32.a  - built with Mingw32 on Win98 (use with -                          MSVC pthread.dll for runtime) - -These are the only files you need in order to build POSIX threads -applications for Win32 using either MSVC or Mingw32. -       -See the FAQ file in the source tree for additional information. - - -Why you can't build the DLL itself with Mingw32 (yet) ------------------------------------------------------ - -The library makes use of exception handling internally (Win32 SEH if -compiled with MSVC and C++ EH otherwise). Unfortunately, current -versions of egcs (g++) do not have thread-safe exception handling -and therefore the DLL pthread.dll cannot be built. - -However, it is possible to build applications which make use of -pthreads-win32, using Mingw32's gcc or g++. - - -Building the library with MSVC ------------------------------- - -A simple makefile for building the library with MSVC is available. The -Makefile by default links the library to MSVCRT.DLL. If your application -uses another C runtime library like LIBCMT.LIB, please edit the Makefile to -avoid conflicts between C-libraries. - -There is also a batch file "buildlib.bat" which will build the library. - - -Documentation -------------- - -Currently, there is no documentation included in the package apart -from the copious comments in the source code. - -For POSIX Thread API programming, several reference books are -available:   - -        Programming with POSIX Threads -        David R. Butenhof -        Addison-Wesley (pub) - -        Pthreads Programming -        By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell -        O'Reilly (pub) -       - -Acknowledgements ----------------- -       -This library is based substantially on a Win32 pthreads -implementation contributed by John Bossom <John.Bossom@cognos.com>. -       -The implementation of condition variables is derived from the work -of Douglas Schmidt et al -(http://www.cs.wustl.edu/~schmidt/win32-cv-1.html). - -There is also a separate CONTRIBUTORS file. This file and others are -on the web site: - -        http://sourceware.cygnus.com/pthreads-win32 - -Enjoy! - -Ross Johnson +
 +                 PTHREADS-WIN32 SNAPSHOT 2000-08-10
 +                 ----------------------------------
 +       Web Site: http://sources.redhat.com/pthreads-win32/
 +      FTP Site: ftp://sources.redhat.com/pub/pthreads-win32
 +        Coordinator: Ross Johnson <rpj@ise.canberra.edu.au>
 +
 +
 +We are pleased to announce the availability of a new snapshot of
 +Pthreads-win32, an Open Source Software (OSS) implementation of the
 +Threads component of the POSIX 1003.1c 1995 Standard for Microsoft's
 +Win32 environment. Some functions from POSIX 1003.1b are also
 +supported including semaphores. Other related functions include
 +the set of read-write lock functions.
 +
 +Pthreads-win32 is free software, distributed under the GNU Library
 +General Public License (LGPL).
 +
 +Please see the 'Acknowledgements' section at the end of this
 +announcement for the list of contributors.
 +
 +
 +Change Summary (since the last snapshot)
 +----------------------------------------
 +
 +(See the ChangeLog file for details.)
 +
 +New:
 +-	asynchronous cancelation on X86 (Jason Nye)
 +-	Makefile compatible with MS nmake to replace
 +	buildlib.bat
 +-	GNUmakefile for Mingw32
 +-	tests/Makefile for MS nmake replaces runall.bat
 +-	tests/GNUmakefile for Mingw32
 +
 +Bugs fixed:
 +-	kernel32 load/free problem
 +-	attempt to hide internel exceptions from application
 +	exception handlers (__try/__except and try/catch blocks)
 +-	Win32 thread handle leakage bug
 +	(David Baggett/Paul Redondo/Eyal Lebedinsky)
 +
 +Some new tests have been added.
 +
 +
 +Known bugs in this snapshot
 +---------------------------
 +
 +1. 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 _pthread_threadStart().
 +
 +2. There are problems with using the libpthread32.a file with the
 +VC++ SEH version of pthread.dll. The cleanup1.c test fails and the
 +eyal1.c test gives suspect results.
 +
 +3. I have not been able to build with VC++ using C++ EH. This is a
 +maintainer problem who doesn't think he's doing it right. Consequently
 +there may also be basic parser errors and warnings to be cleaned
 +up in the code.
 +
 +4. Due to what is believed to be a C++ compliance error in VC++,
 +if your application contains catch(...) blocks in your POSIX threads
 +then you will need to replace the "catch(...)" with the macro
 +"PtW32Catch", eg.
 +
 +	#ifdef PtW32Catch
 +		PtW32Catch {
 +			...
 +		}
 +	#else
 +		catch(...) {
 +			...
 +		}
 +	#endif
 +
 +Otherwise neither pthreads cancelation nor pthread_exit() will work
 +reliably.
 +
 +
 +Level of standards conformance
 +------------------------------
 +
 +The following POSIX 1003.1c 1995 options are defined:
 +
 +      _POSIX_THREADS
 +      _POSIX_THREAD_SAFE_FUNCTIONS
 +      _POSIX_THREAD_ATTR_STACKSIZE
 +
 +
 +The following POSIX 1003.1c 1995 options are not defined:
 +
 +      _POSIX_THREAD_ATTR_STACKADDR
 +      _POSIX_THREAD_PRIORITY_SCHEDULING
 +      _POSIX_THREAD_PRIO_INHERIT
 +      _POSIX_THREAD_PRIO_PROTECT
 +      _POSIX_THREAD_PROCESS_SHARED
 +
 +The following POSIX 1003.1b option is defined:
 +
 +      _POSIX_SEMAPHORES
 +
 +The following functions are implemented:
 +
 +      ---------------------------
 +      PThreads
 +      ---------------------------
 +      pthread_attr_init
 +      pthread_attr_destroy
 +      pthread_attr_getdetachstate
 +      pthread_attr_getstackaddr
 +      pthread_attr_getstacksize
 +      pthread_attr_setdetachstate
 +      pthread_attr_setstackaddr
 +      pthread_attr_setstacksize
 +
 +      pthread_create
 +      pthread_detach
 +      pthread_equal
 +      pthread_exit
 +      pthread_join
 +      pthread_once
 +      pthread_self
 +
 +      pthread_cancel
 +      pthread_cleanup_pop
 +      pthread_cleanup_push
 +      pthread_setcancelstate
 +      pthread_setcanceltype
 +      pthread_testcancel
 +          
 +      ---------------------------
 +      Thread Specific Data   
 +      ---------------------------
 +      pthread_key_create
 +      pthread_key_delete
 +      pthread_setspecific
 +      pthread_getspecific
 +                
 +      ---------------------------
 +      Mutexes
 +      ---------------------------
 +      pthread_mutexattr_init
 +      pthread_mutexattr_destroy
 +      pthread_mutexattr_getpshared
 +      pthread_mutexattr_setpshared
 +
 +      pthread_mutex_init
 +      pthread_mutex_destroy
 +      pthread_mutex_lock
 +      pthread_mutex_trylock      
 +      pthread_mutex_unlock
 +
 +      ---------------------------
 +      Condition Variables
 +      ---------------------------
 +      pthread_condattr_init
 +      pthread_condattr_destroy
 +      pthread_condattr_getpshared
 +      pthread_condattr_setpshared
 +
 +      pthread_cond_init
 +      pthread_cond_destroy
 +      pthread_cond_wait
 +      pthread_cond_timedwait
 +      pthread_cond_signal
 +      pthread_cond_broadcast  
 +
 +      ---------------------------
 +      Read/Write Locks:
 +      ---------------------------
 +      pthread_rwlock_init
 +      pthread_rwlock_destroy
 +      pthread_rwlock_tryrdlock
 +      pthread_rwlock_trywrlock
 +      pthread_rwlock_rdlock
 +      pthread_rwlock_rwlock
 +      pthread_rwlock_unlock
 +
 +      ---------------------------
 +      Semaphores
 +      ---------------------------
 +      sem_init               (POSIX 1b)
 +      sem_destroy            (POSIX 1b)
 +      sem_post               (POSIX 1b)
 +      sem_wait               (POSIX 1b)
 +      sem_trywait            (POSIX 1b)
 +      sem_open               (POSIX 1b - returns an error ENOSYS)
 +      sem_close              (POSIX 1b - returns an error ENOSYS)
 +      sem_unlink             (POSIX 1b - returns an error ENOSYS)
 +      sem_getvalue           (POSIX 1b - returns an error ENOSYS)
 +
 +      ---------------------------
 +      RealTime Scheduling
 +      ---------------------------
 +      pthread_attr_getschedparam  
 +      pthread_attr_setschedparam  
 +      pthread_getschedparam
 +      pthread_setschedparam
 +      sched_get_priority_max (POSIX 1b)
 +      sched_get_priority_min (POSIX 1b)
 +      sched_yield            (POSIX 1b)
 +
 +      ---------------------------
 +      Signals
 +      ---------------------------
 +      pthread_sigmask
 +
 +      ---------------------------
 +      Static Initializers (macros)
 +      ---------------------------
 +      PTHREAD_ONCE_INIT
 +      PTHREAD_MUTEX_INITIALIZER
 +      PTHREAD_COND_INITIALIZER
 +      PTHREAD_RWLOCK_INITIALIZER
 +      
 +      ---------------------------
 +      Thread-Safe C Runtime Library (macros)
 +      ---------------------------
 +      strtok_r
 +      asctime_r
 +      ctime_r
 +      gmtime_r
 +      localtime_r
 +      rand_r
 +
 +
 +The following functions are not implemented:
 +      
 +      ---------------------------
 +      RealTime Scheduling
 +      ---------------------------
 +      pthread_attr_getinheritsched
 +      pthread_attr_getschedpolicy
 +      pthread_attr_getscope
 +      pthread_attr_setinheritsched
 +      pthread_attr_setschedpolicy
 +      pthread_attr_setscope
 +      pthread_mutex_getprioceiling
 +      pthread_mutex_setprioceiling
 +      pthread_mutex_attr_getprioceiling
 +      pthread_mutex_attr_getprotocol
 +      pthread_mutex_attr_setprioceiling
 +      pthread_mutex_attr_setprotocol
 +      
 +      ---------------------------
 +      Fork Handlers
 +      ---------------------------
 +      pthread_atfork
 +
 +      ---------------------------
 +      Stdio
 +      --------------------------- 
 +      flockfile
 +      ftrylockfile
 +      funlockfile
 +      getc_unlocked
 +      getchar_unlocked  
 +      putc_unlocked
 +      putchar_unlocked
 +
 +      ---------------------------
 +      Thread-Safe C Runtime Library
 +      ---------------------------
 +      readdir_r
 +      getgrgid_r
 +      getgrnam_r
 +      getpwuid_r
 +      getpwnam_r
 +      
 +      ---------------------------
 +      Signals
 +      ---------------------------
 +      pthread_kill
 +      sigtimedwait
 +      sigwait
 +      sigwaitinfo
 +      
 +      
 +The library includes two non-API functions for creating cancellation
 +points in applications and libraries:
 +      
 +      pthreadCancelableWait
 +      pthreadCancelableTimedWait
 +
 +      
 +Availability
 +------------ 
 +
 +The prebuilt DLL, export libs (for both MSVC and Mingw32), and the header
 +files (pthread.h, semaphore.h, sched.h) are available along with the
 +complete source code.
 +
 +The source code can be found at:
 +
 +	ftp://sourcs.redhat.com/pub/pthreads-win32
 +
 +and as individual source code files at
 +
 +	ftp://sources.redhat.com/pub/pthreads-win32/source
 +
 +The pre-built DLL, export libraries and include files can be found at:
 +
 +	ftp://sources.redhat.com/pub/pthreads-win32/dll-latest
 +
 +
 +      
 +Mailing List 
 +------------  
 +      
 +There is a mailing list for discussing pthreads on Win32. To join,
 +send email to:
 +
 +        pthreads-win32-subscribe@sourceware.cygnus.com
 +      
 +
 +Application Development Environments
 +------------------------------------
 +      
 +MSVC:
 +MSVC using SEH works.
 +MSVC using C++ EH not tested.
 +
 +Mingw32: (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/egcs-1.1.1/)
 +Mingw32 must use the thread-safe MSVCRT library (see the FAQ). You can link
 +against the export library libpthread32.a built under Mingw32
 +but you must run your application with the version of pthread.dll built
 +with MSVC. See the "Known bugs" section above.
 +      
 +Cygwin: (http://sourceware.cygnus.com/cygwin/)
 +Cygwin aims to provide a complete POSIX environment on top of Win32, including
 +threads. When this is complete, developers using Cygwin will not need
 +pthreads-win32. At this time, Cygwin has preliminary support for multithreaded
 +development, however, this is not turned on by default. We have not tested
 +pthreads-win32 against Cygwin.
 +
 +Generally:
 +For convenience, the following pre-built files are available on the FTP site
 +(see Availability above):
 +
 +        pthread.h       - for POSIX 1c threads
 +        semaphore.h     - for POSIX 1b semaphores
 +        sched.h         - for POSIX 1b scheduling
 +        pthread.dll     - built with MSVC cl compiler on NT4.0
 +        pthread.lib     - built with MSVC cl compiler on NT4.0
 +        libpthread32.a  - built with Mingw32 on Win98 (use with
 +                          MSVC pthread.dll for runtime)
 +
 +These are the only files you need in order to build POSIX threads
 +applications for Win32 using either MSVC or Mingw32.
 +      
 +See the FAQ file in the source tree for additional information.
 +
 +
 +Building the library with MSVC
 +------------------------------
 +
 +A simple makefile for building the library with MSVC is available. The
 +Makefile by default links the library to MSVCRT.DLL. If your application
 +uses another C runtime library like LIBCMT.LIB, please edit the Makefile to
 +avoid conflicts between C-libraries.
 +
 +There is also a batch file "buildlib.bat" which will build the library.
 +
 +
 +Documentation
 +-------------
 +
 +Currently, there is no documentation included in the package apart
 +from the copious comments in the source code.
 +
 +For POSIX Thread API programming, several reference books are
 +available:  
 +
 +        Programming with POSIX Threads
 +        David R. Butenhof
 +        Addison-Wesley (pub)
 +
 +        Pthreads Programming
 +        By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell
 +        O'Reilly (pub)
 +      
 +
 +Acknowledgements
 +----------------
 +      
 +This library is based substantially on a Win32 pthreads
 +implementation contributed by John Bossom <John.Bossom@cognos.com>.
 +      
 +The implementation of condition variables is derived from the work
 +of Douglas Schmidt et al
 +(http://www.cs.wustl.edu/~schmidt/win32-cv-1.html).
 +
 +There is also a separate CONTRIBUTORS file. This file and others are
 +on the web site:
 +
 +        http://sources.redhat.com/pthreads-win32
 +
 +Enjoy!
 +
 +Ross Johnson
 | 
