devdraw: more fixes (thanks David Jeannot)

This commit is contained in:
Russ Cox 2011-10-12 13:40:35 -04:00
parent 210d461c87
commit d0a596c5c8
5 changed files with 372 additions and 313 deletions

View file

@ -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