[libdispatch-changes] [50] trunk
source_changes at macosforge.org
source_changes at macosforge.org
Sat Oct 3 06:31:35 PDT 2009
Revision: 50
http://trac.macosforge.org/projects/libdispatch/changeset/50
Author: robert at fledge.watson.org
Date: 2009-10-03 06:31:32 -0700 (Sat, 03 Oct 2009)
Log Message:
-----------
Detect pthread_main_np() in configure, and only use if defined. For
non-supporting platforms, it would be advantageous to provide a
compat interface.
Modified Paths:
--------------
trunk/configure.ac
trunk/src/queue.c
Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac 2009-10-03 13:24:53 UTC (rev 49)
+++ trunk/configure.ac 2009-10-03 13:31:32 UTC (rev 50)
@@ -178,7 +178,7 @@
[[#include <sys/event.h>]])
AC_CHECK_DECLS([SIGEMT], [], [], [[#include <signal.h>]])
AC_CHECK_DECLS([VQ_UPDATE, VQ_VERYLOWDISK], [], [], [[#include <sys/mount.h>]])
-AC_CHECK_FUNCS([pthread_key_init_np mach_absolute_time malloc_create_zone sem_init])
+AC_CHECK_FUNCS([pthread_key_init_np pthread_main_np mach_absolute_time malloc_create_zone sem_init])
#
# Does the platform support __private_extern__? There is surely a better way
Modified: trunk/src/queue.c
===================================================================
--- trunk/src/queue.c 2009-10-03 13:24:53 UTC (rev 49)
+++ trunk/src/queue.c 2009-10-03 13:31:32 UTC (rev 50)
@@ -896,12 +896,17 @@
void
dispatch_main(void)
{
+
+#ifdef HAVE_PTHREAD_MAIN_NP
if (pthread_main_np()) {
+#endif
_dispatch_program_is_probably_callback_driven = true;
pthread_exit(NULL);
DISPATCH_CRASH("pthread_exit() returned");
+#ifdef HAVE_PTHREAD_MAIN_NP
}
DISPATCH_CLIENT_CRASH("dispatch_main() must be called on the main thread");
+#endif
}
static void
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/libdispatch-changes/attachments/20091003/d8c9e1ec/attachment-0001.html>
More information about the libdispatch-changes
mailing list