view Isolated/SimpleThread.h @ 58:79503033cf53

merged
author Eric Wing <ewing . public |-at-| gmail . com>
date Wed, 30 May 2012 02:26:03 -0700
parents 208a9ed20087
children 36644b1b940b
line wrap: on
line source

#ifndef SIMPLE_THREAD
#define SIMPLE_THREAD

#ifdef __cplusplus
extern "C" {
#endif
	
	#if defined(_WIN32)
		#if defined(SIMPLE_THREAD_BUILD_LIBRARY)
			#define SIMPLE_THREAD_DECLSPEC __declspec(dllexport)
		#else
			#define SIMPLE_THREAD_DECLSPEC __declspec(dllimport)
		#endif
	#else
		#if defined(SIMPLE_THREAD_BUILD_LIBRARY)
			#if defined (__GNUC__) && __GNUC__ >= 4
				#define SIMPLE_THREAD_DECLSPEC __attribute__((visibility("default")))
			#else
				#define SIMPLE_THREAD_DECLSPEC
			#endif
		#else
			#define SIMPLE_THREAD_DECLSPEC
		#endif
	#endif

	#if defined(_WIN32)
		#define SIMPLE_THREAD_CALL __cdecl
	#else
		#define SIMPLE_THREAD_CALL
	#endif

#include <stddef.h>

typedef struct SimpleThread SimpleThread;


extern SIMPLE_THREAD_DECLSPEC SimpleThread* SIMPLE_THREAD_CALL SimpleThread_CreateThread(int (*user_function)(void*), void* user_data);

extern SIMPLE_THREAD_DECLSPEC size_t SIMPLE_THREAD_CALL SimpleThread_GetCurrentThreadID(void);
extern SIMPLE_THREAD_DECLSPEC size_t SIMPLE_THREAD_CALL SimpleThread_GetThreadID(SimpleThread* simple_thread);

extern SIMPLE_THREAD_DECLSPEC void SIMPLE_THREAD_CALL SimpleThread_WaitThread(SimpleThread* simple_thread, int* thread_status);


extern SIMPLE_THREAD_DECLSPEC int SIMPLE_THREAD_CALL SimpleThread_GetThreadPriority(SimpleThread* simple_thread);
extern SIMPLE_THREAD_DECLSPEC void SIMPLE_THREAD_CALL SimpleThread_SetThreadPriority(SimpleThread* simple_thread, int priority_level);

/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}
#endif

#endif