aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/devdraw/cocoa-thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/devdraw/cocoa-thread.h')
-rw-r--r--src/cmd/devdraw/cocoa-thread.h41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/cmd/devdraw/cocoa-thread.h b/src/cmd/devdraw/cocoa-thread.h
index 925c4e0e..c2f3e982 100644
--- a/src/cmd/devdraw/cocoa-thread.h
+++ b/src/cmd/devdraw/cocoa-thread.h
@@ -1,14 +1,33 @@
-#define QLock DQLock
-#define qlock dqlock
-#define qunlock dqunlock
+/*
+ * I am too ignorant to know if Cocoa and Libthread
+ * can coexist: if I try to include thread.h, now
+ * that Devdraw uses Cocoa's threads (and timers), it
+ * crashes immediately; when Devdraw was using
+ * proccreate(), it could run a little while before to
+ * crash; the origin of those crashes is hard to
+ * ascertain, because other programs using Libthread
+ * (such as 9term, Acme, Plumber, and Sam) currently
+ * don't run when compiled with Xcode 4.1.
+ */
+//#define TRY_LIBTHREAD
-typedef struct QLock QLock;
+#ifdef TRY_LIBTHREAD
+ #include <thread.h>
+#else
+ #define QLock DQLock
+ #define qlock dqlock
+ #define qunlock dqunlock
+ #define threadexitsall exits
+ #define threadmain main
-struct QLock
-{
- pthread_mutex_t m;
- int init;
-};
+ typedef struct QLock QLock;
-void qlock(QLock*);
-void qunlock(QLock*);
+ struct QLock
+ {
+ int init;
+ pthread_mutex_t m;
+ };
+
+ void qlock(QLock*);
+ void qunlock(QLock*);
+#endif