summaryrefslogtreecommitdiff
path: root/ANNOUNCE
diff options
context:
space:
mode:
authorrpj <rpj>2002-03-02 01:53:08 +0000
committerrpj <rpj>2002-03-02 01:53:08 +0000
commit44c245b3ed9e82cc44a5ade4a941c99f63174021 (patch)
tree4a7b209123299d176826442200de02fed08afb7d /ANNOUNCE
parent8200f6ff1edca15756a22e6359f20836c4b5425b (diff)
* errno.c: Compiler directive was incorrectly including code.
* pthread.h: Conditionally added some #defines from config.h needed when not building the library. e.g. NEED_ERRNO, NEED_SEM. (PTW32_DLLPORT): Now only defined if _DLL defined. (_errno): Compiler directive was incorrectly including prototype. * sched.h: Conditionally added some #defines from config.h needed when not building the library. * semaphore.h: Replace an instance of NEED_SEM that should have been NEED_ERRNO. This change currently has nil effect. * GNUmakefile: Correct some recent changes. * Makefile: Add rule to generate pre-processor output.
Diffstat (limited to 'ANNOUNCE')
-rw-r--r--ANNOUNCE28
1 files changed, 21 insertions, 7 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index bedeeb1..7e47bd4 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -259,11 +259,21 @@ Known bugs in this snapshot
---------------------------
1. Under MS VC++ (only tested with version 6.0), a term_func
- set via the standard C++ set_terminate() function is not called
- for some reason. The code in private.c ptw32_threadStart()
- retrieves and calls the user supplied terminate routine, which
- works as expected under MinGW32 g++, but doesn't run under
- MS VC++ 6.0, presumably because set_terminate() returns NULL.
+ set via the standard C++ set_terminate() function is not called.
+
+ Notes from the MSVC++ manual:
+ 1) A term_func() should call exit(), otherwise
+ abort() will be called on return to the caller.
+ A call to abort() raises SIGABRT and the default signal handler
+ for all signals terminates the calling program with
+ exit code 3.
+ 2) A term_func() must not throw an exception. Therefore
+ term_func() should not call pthread_exit(), which
+ works by throwing an exception (pthreadVCE or pthreadVSE)
+ or by calling longjmp (pthreadVC).
+
+ Workaround: avoid using pthread_exit() in C++ applications. Exit
+ threads by dropping through the end of the thread routine.
2. Cancellation problems in optimised code
- Milan Gardian
@@ -344,9 +354,13 @@ Known bugs in this snapshot
creation of production code is highly unreliable for the current version of
the pthreads library.
+3. errno
-Caveats
--------
+ Under MSVC, errno isn't working.
+
+
+Special notes
+-------------
1. [See also the discussion in the FAQ file - Q2, Q4, and Q5]