icethread.h

来自「使用stl技术,(还没看,是听说的)」· C头文件 代码 · 共 66 行

H
66
字号
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 *	Contains code for threads.
 *	\file		IceThreads.h
 *	\author		Pierre Terdiman
 *	\date		March, 10, 2003
 */
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Include Guard
#ifndef __ICETHREAD_H__
#define __ICETHREAD_H__

	struct IceMutex
	{
		HANDLE id;
	};

	FUNCTION ICECORE_API	IceMutex*	CreateMutex();
	FUNCTION ICECORE_API	void		DestroyMutex(IceMutex* mutex);
	FUNCTION ICECORE_API	int			LockMutex(IceMutex* mutex);
	FUNCTION ICECORE_API	int			UnlockMutex(IceMutex* mutex);

	//////////////////////

	struct IceSemaphore
	{
		HANDLE id;
		udword volatile count;
	};

	typedef struct IceSemaphore IceSem;

	FUNCTION ICECORE_API	IceSem*		CreateSemaphore(udword initial_value);
	FUNCTION ICECORE_API	void		DestroySemaphore(IceSem* sem);
	FUNCTION ICECORE_API	int			SemWaitTimeout(IceSem* sem, udword timeout);
	FUNCTION ICECORE_API	int			SemTryWait(IceSem* sem);
	FUNCTION ICECORE_API	int			SemWait(IceSem* sem);
	FUNCTION ICECORE_API	udword		SemValue(IceSem* sem);
	FUNCTION ICECORE_API	int			SemPost(IceSem* sem);

	//////////////////////

	typedef HANDLE SYS_ThreadHandle;

	struct ThreadError
	{
	};

	struct IceThread
	{
		udword				threadid;
		SYS_ThreadHandle	handle;
		int					status;
		ThreadError			errbuf;
		void*				data;
	};

	FUNCTION ICECORE_API	IceThread*	CreateThread(int (*fn)(void *), void *data);
	FUNCTION ICECORE_API	void		WaitThread(IceThread* thread, int* status);
	FUNCTION ICECORE_API	udword		GetThreadID(IceThread* thread);
	FUNCTION ICECORE_API	void		KillThread(IceThread* thread);

#endif // __ICETHREAD_H__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?