summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--implement.h4
-rw-r--r--pthread.h1
-rw-r--r--pthread_win32_attach_detach_np.c3
-rw-r--r--ptw32_threadStart.c4
-rw-r--r--ptw32_throw.c4
6 files changed, 21 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index fe9bbe7..75abe8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,12 @@
LONG for 32 bit systems and LONGLONG for 64 bit systems.
* implement.h (MCS locks): nextFlag and waitFlag are now HANDLE type.
* ptw32_MCS_locks.c: Likewise.
+ * pthread_win32_attach_detach_np.c: Set the DLL search path to exclude
+ the "current idrectory".
+ * pthread.h (#include <setjmp.h>): Removed.
+ * ptw32_throw.c (#include <setjmp.h>): Added.
+ * ptw32_threadStart.c (#include <setjmp.h>): Added.
+ * implement.h (#include <setjmp.h>): Added.
2011-06-30 Ross Johnson <ross dot johnson at homemail dot com dot au>
diff --git a/implement.h b/implement.h
index 7a3e0a2..bae4bff 100644
--- a/implement.h
+++ b/implement.h
@@ -68,6 +68,10 @@ typedef VOID (APIENTRY *PAPCFUNC)(DWORD dwParam);
#include <malloc.h>
#endif
+#if defined(__CLEANUP_C)
+# include <setjmp.h>
+#endif
+
#if !defined(INT_MAX)
#include <limits.h>
#endif
diff --git a/pthread.h b/pthread.h
index acb3775..9a19788 100644
--- a/pthread.h
+++ b/pthread.h
@@ -225,7 +225,6 @@ typedef unsigned long ULONG_PTR;
#include <signal.h>
#endif /* HAVE_SIGNAL_H */
-#include <setjmp.h>
#include <limits.h>
/*
diff --git a/pthread_win32_attach_detach_np.c b/pthread_win32_attach_detach_np.c
index bd52a7f..f8940e5 100644
--- a/pthread_win32_attach_detach_np.c
+++ b/pthread_win32_attach_detach_np.c
@@ -67,6 +67,7 @@ pthread_win32_process_attach_np ()
/*
* Load QUSEREX.DLL and try to get address of QueueUserAPCEx
*/
+ SetDllDirectory(""); /* Don't search in current directory */
ptw32_h_quserex = LoadLibrary (TEXT ("QUSEREX.DLL"));
if (ptw32_h_quserex != NULL)
@@ -112,6 +113,8 @@ pthread_win32_process_attach_np ()
}
}
+ SetDllDirectory(NULL); /* Reset DLL search path to default */
+
if (ptw32_h_quserex)
{
ptw32_features |= PTW32_ALERTABLE_ASYNC_CANCEL;
diff --git a/ptw32_threadStart.c b/ptw32_threadStart.c
index 3315972..cb08403 100644
--- a/ptw32_threadStart.c
+++ b/ptw32_threadStart.c
@@ -39,6 +39,10 @@
#include "implement.h"
#include <stdio.h>
+#if defined(__CLEANUP_C)
+# include <setjmp.h>
+#endif
+
#if defined(__CLEANUP_SEH)
static DWORD
diff --git a/ptw32_throw.c b/ptw32_throw.c
index 4846306..1404e94 100644
--- a/ptw32_throw.c
+++ b/ptw32_throw.c
@@ -38,6 +38,10 @@
#include "pthread.h"
#include "implement.h"
+#if defined(__CLEANUP_C)
+# include <setjmp.h>
+#endif
+
/*
* ptw32_throw
*