/[pcsx2_0.9.7]/trunk/3rdparty/w32pthreads/ANNOUNCE
ViewVC logotype

Contents of /trunk/3rdparty/w32pthreads/ANNOUNCE

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.22