summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrpj <rpj>2004-11-23 01:06:18 +0000
committerrpj <rpj>2004-11-23 01:06:18 +0000
commit45bf44ba9acba066769bedf5657e13d7d66e152e (patch)
treef8a9b4f133cde15a238add93be4dcf7e5d2f62f4
parent91f42a2d730786fba0675fd39379ac2216b95d08 (diff)
''
-rw-r--r--ANNOUNCE43
-rw-r--r--NEWS40
-rw-r--r--pthread_cancel.c2
-rw-r--r--pthread_detach.c2
-rw-r--r--pthread_join.c2
5 files changed, 73 insertions, 16 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index fac7318..778c95a 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -63,13 +63,11 @@ These are now documented in the BUGS file.
Level of standards conformance
------------------------------
-The following POSIX 1003.1 2001 options are defined:
+The following POSIX 1003.1 2001 options are defined and set to 200112L:
_POSIX_THREADS
_POSIX_THREAD_SAFE_FUNCTIONS
_POSIX_THREAD_ATTR_STACKSIZE
- _POSIX_SEM_VALUE_MAX
- _POSIX_SEM_NSEMS_MAX
_POSIX_THREAD_PRIORITY_SCHEDULING
_POSIX_SEMAPHORES
_POSIX_READER_WRITER_LOCKS
@@ -77,7 +75,7 @@ The following POSIX 1003.1 2001 options are defined:
_POSIX_BARRIERS
-The following POSIX 1003.1 2001 options are not defined:
+The following POSIX 1003.1 2001 options are defined and set to -1:
_POSIX_THREAD_ATTR_STACKADDR
_POSIX_THREAD_PRIO_INHERIT
@@ -85,6 +83,17 @@ The following POSIX 1003.1 2001 options are not defined:
_POSIX_THREAD_PROCESS_SHARED
+The following POSIX 1003.1 2001 options are defined and set:
+
+ _POSIX_THREAD_THREADS_MAX
+ _POSIX_SEM_VALUE_MAX
+ _POSIX_SEM_NSEMS_MAX
+ PTHREAD_DESTRUCTOR_ITERATIONS
+ PTHREAD_KEYS_MAX
+ PTHREAD_STACK_MIN
+ PTHREAD_THREADS_MAX
+
+
The following functions are implemented:
---------------------------
@@ -249,18 +258,24 @@ The following functions are implemented:
PTHREAD_MUTEX_ADAPTIVE_NP,
PTHREAD_MUTEX_TIMED_NP)
pthread_num_processors_np
- pthread_win32_process_attach_np (Required when statically linking the library)
- pthread_win32_process_detach_np (Required when statically linking the library)
- pthread_win32_thread_attach_np (Required when statically linking the library)
- pthread_win32_thread_detach_np (Required when statically linking the library)
+ pthread_win32_process_attach_np (Required when statically linking
+ the library)
+ pthread_win32_process_detach_np (Required when statically linking
+ the library)
+ pthread_win32_thread_attach_np (Required when statically linking
+ the library)
+ pthread_win32_thread_detach_np (Required when statically linking
+ the library)
---------------------------
Static Initializers
---------------------------
PTHREAD_ONCE_INIT
PTHREAD_MUTEX_INITIALIZER
- PTHREAD_RECURSIVE_MUTEX_INITIALIZER (also: PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
- PTHREAD_ERRORCHECK_MUTEX_INITIALIZER (also: PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP)
+ PTHREAD_RECURSIVE_MUTEX_INITIALIZER
+ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+ PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
+ PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
PTHREAD_COND_INITIALIZER
PTHREAD_RWLOCK_INITIALIZER
PTHREAD_SPINLOCK_INITIALIZER
@@ -319,8 +334,12 @@ The following functions are not implemented:
sigtimedwait
sigwait
sigwaitinfo
-
-
+
+ ---------------------------
+ General
+ ---------------------------
+ sysconf
+
The library includes two non-API functions for creating cancellation
points in applications and libraries:
diff --git a/NEWS b/NEWS
index 663141d..9533af8 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ Bug fixes
* Condition variables no longer deadlock (bug introduced in
snapshot-2004-11-03).
--
+- Alexander Kotliarov and 'qybupt'
* DLL naming extended to avoid 'DLL hell' in the future, and to
accommodate the ABI change introduced in snapshot-2004-11-03. Snapshot
@@ -46,6 +46,44 @@ sensitive to applications that assume that POSIX thread IDs are unique, i.e.
are not strictly compliant with POSIX. See the PTW32_THREAD_ID_REUSE_INCREMENT
macro comments in config.h for details.
+Other changes
+-------------
+Certain POSIX macros have changed.
+
+These changes are intended to conform to the Single Unix Specification version 3,
+which states that, if set to 0 (zero) or not defined, then applications may use
+sysconf() to determine their values at runtime. Pthreads-win32 does not
+implement sysconf().
+
+The following macros are no longer undefined, but defined and set to -1
+(not implemented):
+
+ _POSIX_THREAD_ATTR_STACKADDR
+ _POSIX_THREAD_PRIO_INHERIT
+ _POSIX_THREAD_PRIO_PROTECT
+ _POSIX_THREAD_PROCESS_SHARED
+
+The following macros are defined and set to 200112L (implemented):
+
+ _POSIX_THREADS
+ _POSIX_THREAD_SAFE_FUNCTIONS
+ _POSIX_THREAD_ATTR_STACKSIZE
+ _POSIX_THREAD_PRIORITY_SCHEDULING
+ _POSIX_SEMAPHORES
+ _POSIX_READER_WRITER_LOCKS
+ _POSIX_SPIN_LOCKS
+ _POSIX_BARRIERS
+
+The following macros are defined and set to appropriate values:
+
+ _POSIX_THREAD_THREADS_MAX
+ _POSIX_SEM_VALUE_MAX
+ _POSIX_SEM_NSEMS_MAX
+ PTHREAD_DESTRUCTOR_ITERATIONS
+ PTHREAD_KEYS_MAX
+ PTHREAD_STACK_MIN
+ PTHREAD_THREADS_MAX
+
SNAPSHOT 2004-11-03
-------------------
diff --git a/pthread_cancel.c b/pthread_cancel.c
index e4afca3..7b6dbcb 100644
--- a/pthread_cancel.c
+++ b/pthread_cancel.c
@@ -123,8 +123,8 @@ pthread_cancel (pthread_t thread)
pthread_t self;
ptw32_thread_t * tp;
- /* This is the proper way to test thread validity. */
result = pthread_kill (thread, 0);
+
if (0 != result)
{
return result;
diff --git a/pthread_detach.c b/pthread_detach.c
index 147c506..93903a7 100644
--- a/pthread_detach.c
+++ b/pthread_detach.c
@@ -77,8 +77,8 @@ pthread_detach (pthread_t thread)
int result;
ptw32_thread_t * tp = (ptw32_thread_t *) thread.p;
- /* This is the proper way to test for a valid thread. */
result = pthread_kill (thread, 0);
+
if (0 != result)
{
return result;
diff --git a/pthread_join.c b/pthread_join.c
index 603b89b..a6dc550 100644
--- a/pthread_join.c
+++ b/pthread_join.c
@@ -126,7 +126,7 @@ pthread_join (pthread_t thread, void **value_ptr)
* thread struct). This option is similar to including a reuse counter with
* the thread id but maintains the thread id as a simple pointer.
*
- * As at 27/08/2004, none of the above have been implemented.
+ * As at 03/11/2004, the reuse count option has been implemented.
*/
EnterCriticalSection (&ptw32_thread_reuse_lock);