xref: /relibc/pthreads-emb/ANNOUNCE (revision 062c5bc4dfeed2c1bed58ed4810dd27adb32c68d)
1*062c5bc4SJason Schmidlapp	     PTHREADS-WIN32 RELEASE 2.8.0 (2006-12-22)
2*062c5bc4SJason Schmidlapp	     -----------------------------------------
3*062c5bc4SJason Schmidlapp	 Web Site: http://sources.redhat.com/pthreads-win32/
4*062c5bc4SJason Schmidlapp	FTP Site: ftp://sources.redhat.com/pub/pthreads-win32
5*062c5bc4SJason Schmidlapp	 Maintainer: Ross Johnson <rpj@callisto.canberra.edu.au>
6*062c5bc4SJason Schmidlapp
7*062c5bc4SJason Schmidlapp
8*062c5bc4SJason SchmidlappWe are pleased to announce the availability of a new release of
9*062c5bc4SJason SchmidlappPthreads-win32, an Open Source Software implementation of the
10*062c5bc4SJason SchmidlappThreads component of the POSIX 1003.1 2001 Standard for Microsoft's
11*062c5bc4SJason SchmidlappWin32 environment. Some functions from other sections of POSIX
12*062c5bc4SJason Schmidlapp1003.1 2001 are also supported including semaphores and scheduling
13*062c5bc4SJason Schmidlappfunctions.
14*062c5bc4SJason Schmidlapp
15*062c5bc4SJason SchmidlappSome common non-portable functions are also implemented for
16*062c5bc4SJason Schmidlappadditional compatibility, as are a few functions specific
17*062c5bc4SJason Schmidlappto pthreads-win32 for easier integration with Win32 applications.
18*062c5bc4SJason Schmidlapp
19*062c5bc4SJason SchmidlappPthreads-win32 is free software, distributed under the GNU Lesser
20*062c5bc4SJason SchmidlappGeneral Public License (LGPL).
21*062c5bc4SJason Schmidlapp
22*062c5bc4SJason Schmidlapp
23*062c5bc4SJason SchmidlappAcknowledgements
24*062c5bc4SJason Schmidlapp----------------
25*062c5bc4SJason SchmidlappThis library is based originally on a Win32 pthreads
26*062c5bc4SJason Schmidlappimplementation contributed by John Bossom <John.Bossom@cognos.com>.
27*062c5bc4SJason Schmidlapp
28*062c5bc4SJason SchmidlappThe implementation of Condition Variables uses algorithms developed
29*062c5bc4SJason Schmidlappby Alexander Terekhov and Louis Thomas.
30*062c5bc4SJason Schmidlapp
31*062c5bc4SJason SchmidlappThe implementation of POSIX mutexes has been improved by Thomas Pfaff
32*062c5bc4SJason Schmidlappand later by Alexander Terekhov.
33*062c5bc4SJason Schmidlapp
34*062c5bc4SJason SchmidlappThe implementation of Spinlocks and Barriers was contributed
35*062c5bc4SJason Schmidlappby Ross Johnson.
36*062c5bc4SJason Schmidlapp
37*062c5bc4SJason SchmidlappThe implementation of read/write locks was contributed by
38*062c5bc4SJason SchmidlappAurelio Medina and improved by Alexander Terekhov.
39*062c5bc4SJason Schmidlapp
40*062c5bc4SJason SchmidlappMany others have contributed significant time and effort to solve crutial
41*062c5bc4SJason Schmidlappproblems in order to make the library workable, robust and reliable.
42*062c5bc4SJason Schmidlapp
43*062c5bc4SJason SchmidlappThanks to Xavier Leroy for granting permission to use and modify his
44*062c5bc4SJason SchmidlappLinuxThreads manual pages.
45*062c5bc4SJason Schmidlapp
46*062c5bc4SJason SchmidlappThanks to The Open Group for making the Single Unix Specification
47*062c5bc4SJason Schmidlapppublicly available - many of the manual pages included in the package
48*062c5bc4SJason Schmidlappwere extracted from it.
49*062c5bc4SJason Schmidlapp
50*062c5bc4SJason SchmidlappThere is also a separate CONTRIBUTORS file. This file and others are
51*062c5bc4SJason Schmidlappon the web site:
52*062c5bc4SJason Schmidlapp
53*062c5bc4SJason Schmidlapp	http://sources.redhat.com/pthreads-win32
54*062c5bc4SJason Schmidlapp
55*062c5bc4SJason SchmidlappAs much as possible, the ChangeLog file acknowledges contributions to the
56*062c5bc4SJason Schmidlappcode base in more detail.
57*062c5bc4SJason Schmidlapp
58*062c5bc4SJason Schmidlapp
59*062c5bc4SJason SchmidlappChanges since the last release
60*062c5bc4SJason Schmidlapp------------------------------
61*062c5bc4SJason SchmidlappThese are now documented in the NEWS file.
62*062c5bc4SJason SchmidlappSee the ChangeLog file also.
63*062c5bc4SJason Schmidlapp
64*062c5bc4SJason Schmidlapp
65*062c5bc4SJason SchmidlappKnown Bugs
66*062c5bc4SJason Schmidlapp----------
67*062c5bc4SJason SchmidlappThese are now documented in the BUGS file.
68*062c5bc4SJason Schmidlapp
69*062c5bc4SJason Schmidlapp
70*062c5bc4SJason SchmidlappLevel of standards conformance
71*062c5bc4SJason Schmidlapp------------------------------
72*062c5bc4SJason Schmidlapp
73*062c5bc4SJason SchmidlappThe following POSIX 1003.1 2001 options are defined and set to 200112L:
74*062c5bc4SJason Schmidlapp
75*062c5bc4SJason Schmidlapp      _POSIX_THREADS
76*062c5bc4SJason Schmidlapp      _POSIX_THREAD_SAFE_FUNCTIONS
77*062c5bc4SJason Schmidlapp      _POSIX_THREAD_ATTR_STACKSIZE
78*062c5bc4SJason Schmidlapp      _POSIX_THREAD_PRIORITY_SCHEDULING
79*062c5bc4SJason Schmidlapp      _POSIX_SEMAPHORES
80*062c5bc4SJason Schmidlapp      _POSIX_READER_WRITER_LOCKS
81*062c5bc4SJason Schmidlapp      _POSIX_SPIN_LOCKS
82*062c5bc4SJason Schmidlapp      _POSIX_BARRIERS
83*062c5bc4SJason Schmidlapp
84*062c5bc4SJason Schmidlapp
85*062c5bc4SJason SchmidlappThe following POSIX 1003.1 2001 options are defined and set to -1:
86*062c5bc4SJason Schmidlapp
87*062c5bc4SJason Schmidlapp      _POSIX_THREAD_ATTR_STACKADDR
88*062c5bc4SJason Schmidlapp      _POSIX_THREAD_PRIO_INHERIT
89*062c5bc4SJason Schmidlapp      _POSIX_THREAD_PRIO_PROTECT
90*062c5bc4SJason Schmidlapp      _POSIX_THREAD_PROCESS_SHARED
91*062c5bc4SJason Schmidlapp
92*062c5bc4SJason Schmidlapp
93*062c5bc4SJason SchmidlappThe following POSIX 1003.1 2001 limits are defined and set:
94*062c5bc4SJason Schmidlapp
95*062c5bc4SJason Schmidlapp      _POSIX_THREAD_THREADS_MAX
96*062c5bc4SJason Schmidlapp      _POSIX_SEM_VALUE_MAX
97*062c5bc4SJason Schmidlapp      _POSIX_SEM_NSEMS_MAX
98*062c5bc4SJason Schmidlapp      _POSIX_THREAD_KEYS_MAX
99*062c5bc4SJason Schmidlapp      _POSIX_THREAD_DESTRUCTOR_ITERATIONS
100*062c5bc4SJason Schmidlapp      PTHREAD_STACK_MIN
101*062c5bc4SJason Schmidlapp      PTHREAD_THREADS_MAX
102*062c5bc4SJason Schmidlapp      SEM_VALUE_MAX
103*062c5bc4SJason Schmidlapp      SEM_NSEMS_MAX
104*062c5bc4SJason Schmidlapp      PTHREAD_KEYS_MAX
105*062c5bc4SJason Schmidlapp      PTHREAD_DESTRUCTOR_ITERATIONS
106*062c5bc4SJason Schmidlapp
107*062c5bc4SJason Schmidlapp
108*062c5bc4SJason SchmidlappThe following functions are implemented:
109*062c5bc4SJason Schmidlapp
110*062c5bc4SJason Schmidlapp      ---------------------------
111*062c5bc4SJason Schmidlapp      PThreads
112*062c5bc4SJason Schmidlapp      ---------------------------
113*062c5bc4SJason Schmidlapp      pthread_attr_init
114*062c5bc4SJason Schmidlapp      pthread_attr_destroy
115*062c5bc4SJason Schmidlapp      pthread_attr_getdetachstate
116*062c5bc4SJason Schmidlapp      pthread_attr_getstackaddr
117*062c5bc4SJason Schmidlapp      pthread_attr_getstacksize
118*062c5bc4SJason Schmidlapp      pthread_attr_setdetachstate
119*062c5bc4SJason Schmidlapp      pthread_attr_setstackaddr
120*062c5bc4SJason Schmidlapp      pthread_attr_setstacksize
121*062c5bc4SJason Schmidlapp
122*062c5bc4SJason Schmidlapp      pthread_create
123*062c5bc4SJason Schmidlapp      pthread_detach
124*062c5bc4SJason Schmidlapp      pthread_equal
125*062c5bc4SJason Schmidlapp      pthread_exit
126*062c5bc4SJason Schmidlapp      pthread_join
127*062c5bc4SJason Schmidlapp      pthread_once
128*062c5bc4SJason Schmidlapp      pthread_self
129*062c5bc4SJason Schmidlapp
130*062c5bc4SJason Schmidlapp      pthread_cancel
131*062c5bc4SJason Schmidlapp      pthread_cleanup_pop
132*062c5bc4SJason Schmidlapp      pthread_cleanup_push
133*062c5bc4SJason Schmidlapp      pthread_setcancelstate
134*062c5bc4SJason Schmidlapp      pthread_setcanceltype
135*062c5bc4SJason Schmidlapp      pthread_testcancel
136*062c5bc4SJason Schmidlapp
137*062c5bc4SJason Schmidlapp      ---------------------------
138*062c5bc4SJason Schmidlapp      Thread Specific Data
139*062c5bc4SJason Schmidlapp      ---------------------------
140*062c5bc4SJason Schmidlapp      pthread_key_create
141*062c5bc4SJason Schmidlapp      pthread_key_delete
142*062c5bc4SJason Schmidlapp      pthread_setspecific
143*062c5bc4SJason Schmidlapp      pthread_getspecific
144*062c5bc4SJason Schmidlapp
145*062c5bc4SJason Schmidlapp      ---------------------------
146*062c5bc4SJason Schmidlapp      Mutexes
147*062c5bc4SJason Schmidlapp      ---------------------------
148*062c5bc4SJason Schmidlapp      pthread_mutexattr_init
149*062c5bc4SJason Schmidlapp      pthread_mutexattr_destroy
150*062c5bc4SJason Schmidlapp      pthread_mutexattr_getpshared
151*062c5bc4SJason Schmidlapp      pthread_mutexattr_setpshared
152*062c5bc4SJason Schmidlapp      pthread_mutexattr_gettype
153*062c5bc4SJason Schmidlapp      pthread_mutexattr_settype (types: PTHREAD_MUTEX_DEFAULT
154*062c5bc4SJason Schmidlapp					PTHREAD_MUTEX_NORMAL
155*062c5bc4SJason Schmidlapp					PTHREAD_MUTEX_ERRORCHECK
156*062c5bc4SJason Schmidlapp					PTHREAD_MUTEX_RECURSIVE  )
157*062c5bc4SJason Schmidlapp      pthread_mutex_init
158*062c5bc4SJason Schmidlapp      pthread_mutex_destroy
159*062c5bc4SJason Schmidlapp      pthread_mutex_lock
160*062c5bc4SJason Schmidlapp      pthread_mutex_trylock
161*062c5bc4SJason Schmidlapp      pthread_mutex_timedlock
162*062c5bc4SJason Schmidlapp      pthread_mutex_unlock
163*062c5bc4SJason Schmidlapp
164*062c5bc4SJason Schmidlapp      ---------------------------
165*062c5bc4SJason Schmidlapp      Condition Variables
166*062c5bc4SJason Schmidlapp      ---------------------------
167*062c5bc4SJason Schmidlapp      pthread_condattr_init
168*062c5bc4SJason Schmidlapp      pthread_condattr_destroy
169*062c5bc4SJason Schmidlapp      pthread_condattr_getpshared
170*062c5bc4SJason Schmidlapp      pthread_condattr_setpshared
171*062c5bc4SJason Schmidlapp
172*062c5bc4SJason Schmidlapp      pthread_cond_init
173*062c5bc4SJason Schmidlapp      pthread_cond_destroy
174*062c5bc4SJason Schmidlapp      pthread_cond_wait
175*062c5bc4SJason Schmidlapp      pthread_cond_timedwait
176*062c5bc4SJason Schmidlapp      pthread_cond_signal
177*062c5bc4SJason Schmidlapp      pthread_cond_broadcast
178*062c5bc4SJason Schmidlapp
179*062c5bc4SJason Schmidlapp      ---------------------------
180*062c5bc4SJason Schmidlapp      Read/Write Locks
181*062c5bc4SJason Schmidlapp      ---------------------------
182*062c5bc4SJason Schmidlapp      pthread_rwlock_init
183*062c5bc4SJason Schmidlapp      pthread_rwlock_destroy
184*062c5bc4SJason Schmidlapp      pthread_rwlock_tryrdlock
185*062c5bc4SJason Schmidlapp      pthread_rwlock_trywrlock
186*062c5bc4SJason Schmidlapp      pthread_rwlock_rdlock
187*062c5bc4SJason Schmidlapp      pthread_rwlock_timedrdlock
188*062c5bc4SJason Schmidlapp      pthread_rwlock_rwlock
189*062c5bc4SJason Schmidlapp      pthread_rwlock_timedwrlock
190*062c5bc4SJason Schmidlapp      pthread_rwlock_unlock
191*062c5bc4SJason Schmidlapp      pthread_rwlockattr_init
192*062c5bc4SJason Schmidlapp      pthread_rwlockattr_destroy
193*062c5bc4SJason Schmidlapp      pthread_rwlockattr_getpshared
194*062c5bc4SJason Schmidlapp      pthread_rwlockattr_setpshared
195*062c5bc4SJason Schmidlapp
196*062c5bc4SJason Schmidlapp      ---------------------------
197*062c5bc4SJason Schmidlapp      Spin Locks
198*062c5bc4SJason Schmidlapp      ---------------------------
199*062c5bc4SJason Schmidlapp      pthread_spin_init
200*062c5bc4SJason Schmidlapp      pthread_spin_destroy
201*062c5bc4SJason Schmidlapp      pthread_spin_lock
202*062c5bc4SJason Schmidlapp      pthread_spin_unlock
203*062c5bc4SJason Schmidlapp      pthread_spin_trylock
204*062c5bc4SJason Schmidlapp
205*062c5bc4SJason Schmidlapp      ---------------------------
206*062c5bc4SJason Schmidlapp      Barriers
207*062c5bc4SJason Schmidlapp      ---------------------------
208*062c5bc4SJason Schmidlapp      pthread_barrier_init
209*062c5bc4SJason Schmidlapp      pthread_barrier_destroy
210*062c5bc4SJason Schmidlapp      pthread_barrier_wait
211*062c5bc4SJason Schmidlapp      pthread_barrierattr_init
212*062c5bc4SJason Schmidlapp      pthread_barrierattr_destroy
213*062c5bc4SJason Schmidlapp      pthread_barrierattr_getpshared
214*062c5bc4SJason Schmidlapp      pthread_barrierattr_setpshared
215*062c5bc4SJason Schmidlapp
216*062c5bc4SJason Schmidlapp      ---------------------------
217*062c5bc4SJason Schmidlapp      Semaphores
218*062c5bc4SJason Schmidlapp      ---------------------------
219*062c5bc4SJason Schmidlapp      sem_init
220*062c5bc4SJason Schmidlapp      sem_destroy
221*062c5bc4SJason Schmidlapp      sem_post
222*062c5bc4SJason Schmidlapp      sem_wait
223*062c5bc4SJason Schmidlapp      sem_trywait
224*062c5bc4SJason Schmidlapp      sem_timedwait
225*062c5bc4SJason Schmidlapp      sem_getvalue	     (# free if +ve, # of waiters if -ve)
226*062c5bc4SJason Schmidlapp      sem_open		     (returns an error ENOSYS)
227*062c5bc4SJason Schmidlapp      sem_close 	     (returns an error ENOSYS)
228*062c5bc4SJason Schmidlapp      sem_unlink	     (returns an error ENOSYS)
229*062c5bc4SJason Schmidlapp
230*062c5bc4SJason Schmidlapp      ---------------------------
231*062c5bc4SJason Schmidlapp      RealTime Scheduling
232*062c5bc4SJason Schmidlapp      ---------------------------
233*062c5bc4SJason Schmidlapp      pthread_attr_getschedparam
234*062c5bc4SJason Schmidlapp      pthread_attr_setschedparam
235*062c5bc4SJason Schmidlapp      pthread_attr_getinheritsched
236*062c5bc4SJason Schmidlapp      pthread_attr_setinheritsched
237*062c5bc4SJason Schmidlapp      pthread_attr_getschedpolicy (only supports SCHED_OTHER)
238*062c5bc4SJason Schmidlapp      pthread_attr_setschedpolicy (only supports SCHED_OTHER)
239*062c5bc4SJason Schmidlapp      pthread_getschedparam
240*062c5bc4SJason Schmidlapp      pthread_setschedparam
241*062c5bc4SJason Schmidlapp      pthread_getconcurrency
242*062c5bc4SJason Schmidlapp      pthread_setconcurrency
243*062c5bc4SJason Schmidlapp      pthread_attr_getscope
244*062c5bc4SJason Schmidlapp      pthread_attr_setscope  (only supports PTHREAD_SCOPE_SYSTEM)
245*062c5bc4SJason Schmidlapp      sched_get_priority_max
246*062c5bc4SJason Schmidlapp      sched_get_priority_min
247*062c5bc4SJason Schmidlapp      sched_rr_get_interval  (returns an error ENOTSUP)
248*062c5bc4SJason Schmidlapp      sched_setscheduler     (only supports SCHED_OTHER)
249*062c5bc4SJason Schmidlapp      sched_getscheduler     (only supports SCHED_OTHER)
250*062c5bc4SJason Schmidlapp      sched_yield
251*062c5bc4SJason Schmidlapp
252*062c5bc4SJason Schmidlapp      ---------------------------
253*062c5bc4SJason Schmidlapp      Signals
254*062c5bc4SJason Schmidlapp      ---------------------------
255*062c5bc4SJason Schmidlapp      pthread_sigmask
256*062c5bc4SJason Schmidlapp      pthread_kill           (only supports zero sig value,
257*062c5bc4SJason Schmidlapp                              for thread validity checking)
258*062c5bc4SJason Schmidlapp
259*062c5bc4SJason Schmidlapp      ---------------------------
260*062c5bc4SJason Schmidlapp      Non-portable routines (see the README.NONPORTABLE file for usage)
261*062c5bc4SJason Schmidlapp      ---------------------------
262*062c5bc4SJason Schmidlapp      pthread_getw32threadhandle_np
263*062c5bc4SJason Schmidlapp      pthread_timechange_handler_np
264*062c5bc4SJason Schmidlapp      pthread_delay_np
265*062c5bc4SJason Schmidlapp      pthread_mutexattr_getkind_np
266*062c5bc4SJason Schmidlapp      pthread_mutexattr_setkind_np	(types: PTHREAD_MUTEX_FAST_NP,
267*062c5bc4SJason Schmidlapp						PTHREAD_MUTEX_ERRORCHECK_NP,
268*062c5bc4SJason Schmidlapp						PTHREAD_MUTEX_RECURSIVE_NP,
269*062c5bc4SJason Schmidlapp						PTHREAD_MUTEX_ADAPTIVE_NP,
270*062c5bc4SJason Schmidlapp						PTHREAD_MUTEX_TIMED_NP)
271*062c5bc4SJason Schmidlapp      pthread_num_processors_np
272*062c5bc4SJason Schmidlapp      pthread_win32_process_attach_np	(Required when statically linking
273*062c5bc4SJason Schmidlapp                                         the library)
274*062c5bc4SJason Schmidlapp      pthread_win32_process_detach_np	(Required when statically linking
275*062c5bc4SJason Schmidlapp                                         the library)
276*062c5bc4SJason Schmidlapp      pthread_win32_thread_attach_np	(Required when statically linking
277*062c5bc4SJason Schmidlapp                                         the library)
278*062c5bc4SJason Schmidlapp      pthread_win32_thread_detach_np	(Required when statically linking
279*062c5bc4SJason Schmidlapp                                         the library)
280*062c5bc4SJason Schmidlapp
281*062c5bc4SJason Schmidlapp      ---------------------------
282*062c5bc4SJason Schmidlapp      Static Initializers
283*062c5bc4SJason Schmidlapp      ---------------------------
284*062c5bc4SJason Schmidlapp      PTHREAD_ONCE_INIT
285*062c5bc4SJason Schmidlapp      PTHREAD_MUTEX_INITIALIZER
286*062c5bc4SJason Schmidlapp      PTHREAD_RECURSIVE_MUTEX_INITIALIZER
287*062c5bc4SJason Schmidlapp      PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
288*062c5bc4SJason Schmidlapp      PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
289*062c5bc4SJason Schmidlapp      PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
290*062c5bc4SJason Schmidlapp      PTHREAD_COND_INITIALIZER
291*062c5bc4SJason Schmidlapp      PTHREAD_RWLOCK_INITIALIZER
292*062c5bc4SJason Schmidlapp      PTHREAD_SPINLOCK_INITIALIZER
293*062c5bc4SJason Schmidlapp
294*062c5bc4SJason Schmidlapp      ---------------------------
295*062c5bc4SJason Schmidlapp      Thread-Safe C Runtime Library (macros)
296*062c5bc4SJason Schmidlapp      ---------------------------
297*062c5bc4SJason Schmidlapp      strtok_r
298*062c5bc4SJason Schmidlapp      asctime_r
299*062c5bc4SJason Schmidlapp      ctime_r
300*062c5bc4SJason Schmidlapp      gmtime_r
301*062c5bc4SJason Schmidlapp      localtime_r
302*062c5bc4SJason Schmidlapp      rand_r
303*062c5bc4SJason Schmidlapp
304*062c5bc4SJason Schmidlapp
305*062c5bc4SJason SchmidlappThe following functions are not implemented:
306*062c5bc4SJason Schmidlapp
307*062c5bc4SJason Schmidlapp      ---------------------------
308*062c5bc4SJason Schmidlapp      RealTime Scheduling
309*062c5bc4SJason Schmidlapp      ---------------------------
310*062c5bc4SJason Schmidlapp      pthread_mutex_getprioceiling
311*062c5bc4SJason Schmidlapp      pthread_mutex_setprioceiling
312*062c5bc4SJason Schmidlapp      pthread_mutex_attr_getprioceiling
313*062c5bc4SJason Schmidlapp      pthread_mutex_attr_getprotocol
314*062c5bc4SJason Schmidlapp      pthread_mutex_attr_setprioceiling
315*062c5bc4SJason Schmidlapp      pthread_mutex_attr_setprotocol
316*062c5bc4SJason Schmidlapp
317*062c5bc4SJason Schmidlapp      ---------------------------
318*062c5bc4SJason Schmidlapp      Fork Handlers
319*062c5bc4SJason Schmidlapp      ---------------------------
320*062c5bc4SJason Schmidlapp      pthread_atfork
321*062c5bc4SJason Schmidlapp
322*062c5bc4SJason Schmidlapp      ---------------------------
323*062c5bc4SJason Schmidlapp      Stdio
324*062c5bc4SJason Schmidlapp      ---------------------------
325*062c5bc4SJason Schmidlapp      flockfile
326*062c5bc4SJason Schmidlapp      ftrylockfile
327*062c5bc4SJason Schmidlapp      funlockfile
328*062c5bc4SJason Schmidlapp      getc_unlocked
329*062c5bc4SJason Schmidlapp      getchar_unlocked
330*062c5bc4SJason Schmidlapp      putc_unlocked
331*062c5bc4SJason Schmidlapp      putchar_unlocked
332*062c5bc4SJason Schmidlapp
333*062c5bc4SJason Schmidlapp      ---------------------------
334*062c5bc4SJason Schmidlapp      Thread-Safe C Runtime Library
335*062c5bc4SJason Schmidlapp      ---------------------------
336*062c5bc4SJason Schmidlapp      readdir_r
337*062c5bc4SJason Schmidlapp      getgrgid_r
338*062c5bc4SJason Schmidlapp      getgrnam_r
339*062c5bc4SJason Schmidlapp      getpwuid_r
340*062c5bc4SJason Schmidlapp      getpwnam_r
341*062c5bc4SJason Schmidlapp
342*062c5bc4SJason Schmidlapp      ---------------------------
343*062c5bc4SJason Schmidlapp      Signals
344*062c5bc4SJason Schmidlapp      ---------------------------
345*062c5bc4SJason Schmidlapp      sigtimedwait
346*062c5bc4SJason Schmidlapp      sigwait
347*062c5bc4SJason Schmidlapp      sigwaitinfo
348*062c5bc4SJason Schmidlapp
349*062c5bc4SJason Schmidlapp      ---------------------------
350*062c5bc4SJason Schmidlapp      General
351*062c5bc4SJason Schmidlapp      ---------------------------
352*062c5bc4SJason Schmidlapp      sysconf
353*062c5bc4SJason Schmidlapp
354*062c5bc4SJason SchmidlappThe library includes two non-API functions for creating cancellation
355*062c5bc4SJason Schmidlapppoints in applications and libraries:
356*062c5bc4SJason Schmidlapp
357*062c5bc4SJason Schmidlapp      pthreadCancelableWait
358*062c5bc4SJason Schmidlapp      pthreadCancelableTimedWait
359*062c5bc4SJason Schmidlapp
360*062c5bc4SJason Schmidlapp
361*062c5bc4SJason SchmidlappAvailability
362*062c5bc4SJason Schmidlapp------------
363*062c5bc4SJason Schmidlapp
364*062c5bc4SJason SchmidlappThe prebuilt DLL, export libs (for both MSVC and Mingw32), and the header
365*062c5bc4SJason Schmidlappfiles (pthread.h, semaphore.h, sched.h) are available along with the
366*062c5bc4SJason Schmidlappcomplete source code.
367*062c5bc4SJason Schmidlapp
368*062c5bc4SJason SchmidlappThe source code can be found at:
369*062c5bc4SJason Schmidlapp
370*062c5bc4SJason Schmidlapp	ftp://sources.redhat.com/pub/pthreads-win32
371*062c5bc4SJason Schmidlapp
372*062c5bc4SJason Schmidlappand as individual source code files at
373*062c5bc4SJason Schmidlapp
374*062c5bc4SJason Schmidlapp	ftp://sources.redhat.com/pub/pthreads-win32/source
375*062c5bc4SJason Schmidlapp
376*062c5bc4SJason SchmidlappThe pre-built DLL, export libraries and include files can be found at:
377*062c5bc4SJason Schmidlapp
378*062c5bc4SJason Schmidlapp	ftp://sources.redhat.com/pub/pthreads-win32/dll-latest
379*062c5bc4SJason Schmidlapp
380*062c5bc4SJason Schmidlapp
381*062c5bc4SJason Schmidlapp
382*062c5bc4SJason SchmidlappMailing List
383*062c5bc4SJason Schmidlapp------------
384*062c5bc4SJason Schmidlapp
385*062c5bc4SJason SchmidlappThere is a mailing list for discussing pthreads on Win32. To join,
386*062c5bc4SJason Schmidlappsend email to:
387*062c5bc4SJason Schmidlapp
388*062c5bc4SJason Schmidlapp	pthreads-win32-subscribe@sourceware.cygnus.com
389*062c5bc4SJason Schmidlapp
390*062c5bc4SJason Schmidlapp
391*062c5bc4SJason SchmidlappApplication Development Environments
392*062c5bc4SJason Schmidlapp------------------------------------
393*062c5bc4SJason Schmidlapp
394*062c5bc4SJason SchmidlappSee the README file for more information.
395*062c5bc4SJason Schmidlapp
396*062c5bc4SJason SchmidlappMSVC:
397*062c5bc4SJason SchmidlappMSVC using SEH works. Distribute pthreadVSE.dll with your application.
398*062c5bc4SJason SchmidlappMSVC using C++ EH works. Distribute pthreadVCE.dll with your application.
399*062c5bc4SJason SchmidlappMSVC using C setjmp/longjmp works. Distribute pthreadVC.dll with your application.
400*062c5bc4SJason Schmidlapp
401*062c5bc4SJason Schmidlapp
402*062c5bc4SJason SchmidlappMingw32:
403*062c5bc4SJason SchmidlappSee the FAQ, Questions 6 and 10.
404*062c5bc4SJason Schmidlapp
405*062c5bc4SJason SchmidlappMingw using C++ EH works. Distribute pthreadGCE.dll with your application.
406*062c5bc4SJason SchmidlappMingw using C setjmp/longjmp works. Distribute pthreadGC.dll with your application.
407*062c5bc4SJason Schmidlapp
408*062c5bc4SJason Schmidlapp
409*062c5bc4SJason SchmidlappCygwin: (http://sourceware.cygnus.com/cygwin/)
410*062c5bc4SJason SchmidlappDevelopers using Cygwin will not need pthreads-win32 since it has POSIX threads
411*062c5bc4SJason Schmidlappsupport. Refer to its documentation for details and extent.
412*062c5bc4SJason Schmidlapp
413*062c5bc4SJason Schmidlapp
414*062c5bc4SJason SchmidlappUWIN:
415*062c5bc4SJason SchmidlappUWIN is a complete Unix-like environment for Windows from AT&T. Pthreads-win32
416*062c5bc4SJason Schmidlappdoesn't currently support UWIN (and vice versa), but that may change in the
417*062c5bc4SJason Schmidlappfuture.
418*062c5bc4SJason Schmidlapp
419*062c5bc4SJason SchmidlappGenerally:
420*062c5bc4SJason SchmidlappFor convenience, the following pre-built files are available on the FTP site
421*062c5bc4SJason Schmidlapp(see Availability above):
422*062c5bc4SJason Schmidlapp
423*062c5bc4SJason Schmidlapp	pthread.h	- for POSIX 1c threads
424*062c5bc4SJason Schmidlapp	semaphore.h	- for POSIX 1b semaphores
425*062c5bc4SJason Schmidlapp	sched.h 	- for POSIX 1b scheduling
426*062c5bc4SJason Schmidlapp	pthreadVCE.dll	- built with MSVC++ compiler using C++ EH
427*062c5bc4SJason Schmidlapp	pthreadVCE.lib
428*062c5bc4SJason Schmidlapp	pthreadVC.dll	- built with MSVC compiler using C setjmp/longjmp
429*062c5bc4SJason Schmidlapp	pthreadVC.lib
430*062c5bc4SJason Schmidlapp	pthreadVSE.dll	- built with MSVC compiler using SEH
431*062c5bc4SJason Schmidlapp	pthreadVSE.lib
432*062c5bc4SJason Schmidlapp	pthreadGCE.dll	- built with Mingw32 G++ 2.95.2-1
433*062c5bc4SJason Schmidlapp	pthreadGC.dll	- built with Mingw32 GCC 2.95.2-1 using setjmp/longjmp
434*062c5bc4SJason Schmidlapp	libpthreadGCE.a - derived from pthreadGCE.dll
435*062c5bc4SJason Schmidlapp	libpthreadGC.a	- derived from pthreadGC.dll
436*062c5bc4SJason Schmidlapp	gcc.dll 	- needed if distributing applications that use
437*062c5bc4SJason Schmidlapp			  pthreadGCE.dll (but see the FAQ Q 10 for the latest
438*062c5bc4SJason Schmidlapp			  related information)
439*062c5bc4SJason Schmidlapp
440*062c5bc4SJason SchmidlappThese are the only files you need in order to build POSIX threads
441*062c5bc4SJason Schmidlappapplications for Win32 using either MSVC or Mingw32.
442*062c5bc4SJason Schmidlapp
443*062c5bc4SJason SchmidlappSee the FAQ file in the source tree for additional information.
444*062c5bc4SJason Schmidlapp
445*062c5bc4SJason Schmidlapp
446*062c5bc4SJason SchmidlappDocumentation
447*062c5bc4SJason Schmidlapp-------------
448*062c5bc4SJason Schmidlapp
449*062c5bc4SJason SchmidlappFor the authoritative reference, see the online POSIX
450*062c5bc4SJason Schmidlappstandard reference at:
451*062c5bc4SJason Schmidlapp
452*062c5bc4SJason Schmidlapp       http://www.OpenGroup.org
453*062c5bc4SJason Schmidlapp
454*062c5bc4SJason SchmidlappFor POSIX Thread API programming, several reference books are
455*062c5bc4SJason Schmidlappavailable:
456*062c5bc4SJason Schmidlapp
457*062c5bc4SJason Schmidlapp       Programming with POSIX Threads
458*062c5bc4SJason Schmidlapp       David R. Butenhof
459*062c5bc4SJason Schmidlapp       Addison-Wesley (pub)
460*062c5bc4SJason Schmidlapp
461*062c5bc4SJason Schmidlapp       Pthreads Programming
462*062c5bc4SJason Schmidlapp       By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell
463*062c5bc4SJason Schmidlapp       O'Reilly (pub)
464*062c5bc4SJason Schmidlapp
465*062c5bc4SJason SchmidlappOn the web: see the links at the bottom of the pthreads-win32 site:
466*062c5bc4SJason Schmidlapp
467*062c5bc4SJason Schmidlapp       http://sources.redhat.com/pthreads-win32/
468*062c5bc4SJason Schmidlapp
469*062c5bc4SJason Schmidlapp       Currently, there is no documentation included in the package apart
470*062c5bc4SJason Schmidlapp       from the copious comments in the source code.
471*062c5bc4SJason Schmidlapp
472*062c5bc4SJason Schmidlapp
473*062c5bc4SJason Schmidlapp
474*062c5bc4SJason SchmidlappEnjoy!
475*062c5bc4SJason Schmidlapp
476*062c5bc4SJason SchmidlappRoss Johnson
477