2013-09-26 17:14:40 +02:00

38 lines
1.1 KiB
Plaintext

$NetBSD: patch-ak,v 1.1 2013/06/17 12:43:28 wiz Exp $
--- libgc/pthread_support.c.orig 2011-01-04 19:39:55.000000000 +0200
+++ libgc/pthread_support.c 2011-03-17 16:14:10.000000000 +0200
@@ -68,8 +68,8 @@
# if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \
defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS)) || \
- defined(GC_NETBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) || \
- defined(GC_OPENBSD_THREADS)
+ defined(GC_NETBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) && \
+ !defined(USE_COMPILER_TLS) || defined(GC_OPENBSD_THREADS)
# define USE_PTHREAD_SPECIFIC
# endif
@@ -1175,6 +1175,22 @@
#define __d10_sleep sleep
#endif /* GC_DGUX386_THREADS */
+#undef nanosleep
+#undef usleep
+#undef sleep
+
+/* A wrapper for the standard C nanosleep function */
+int WRAP_FUNC(nanosleep) (const struct timespec *rqtp, struct timespec *rmtp)
+{
+ int result;
+
+ GC_start_blocking();
+ result = REAL_FUNC(nanosleep)(rqtp, rmtp);
+ GC_end_blocking();
+
+ return result;
+}
+
/* A wrapper for the standard C sleep function */
int WRAP_FUNC(sleep) (unsigned int seconds)
{