Plan 9 from User Space's /usr/local/plan9/src/cmd/devdraw/cocoa-thread.h

/*
 * 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

#ifdef TRY_LIBTHREAD
	#include <thread.h>
#else
	#define QLock DQLock
	#define qlock dqlock
	#define qunlock dqunlock
	#define threadexitsall exits
	#define threadmain main

	typedef struct QLock QLock;

	struct QLock
	{
		int init;
		pthread_mutex_t m;
	};

	void	qlock(QLock*);
	void	qunlock(QLock*);
#endif

Space Glenda

Copyright © 2005 Lucent Technologies, Russ Cox, MIT.
See license for details.