source: libcf/trunk/include/cf_thread.h@ 50

Last change on this file since 50 was 50, checked in by cheese, 11 years ago

#1 fix preprocessor definition for windows

File size: 1.4 KB
Line 
1/**
2 * @file cf_thread.h
3 * @author myusgun <myusgun@gmail.com>
4 * @version 0.1
5 *
6 * @remark 멀티스레드 및 뮤텍스 지원
7 *
8 * @example thread.c
9 */
10#ifndef __CF_THREAD_H__
11#define __CF_THREAD_H__
12
13#include "cf_base.h"
14
15#if defined(_WIN32) || defined(_WIN64)
16# define CF_THREAD_RETURN unsigned int /**< 스레드 워커 함수 반환 형 */
17# define CF_THREAD_CALL __stdcall /**< 스레드 워커 함수 호출 규약 */
18#else
19# define CF_THREAD_RETURN void * /**< 스레드 워커 함수 반환 형 */
20# define CF_THREAD_CALL /**< 스레드 워커 함수 호출 규약 */
21#endif
22
23/** 스레드 워커 함수 형태이며, CF_Thread_Function 형식 */
24typedef CF_THREAD_RETURN (CF_THREAD_CALL * CF_Thread_Function) (void *);
25
26/** 스레드 아이디 */
27typedef void * CF_Thread;
28
29/** 뮤텍스 아이디 */
30typedef void * CF_Mutex;
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36CF_EXPORT int
37CF_Thread_Create (CF_Thread * threadID,
38 CF_Thread_Function callback,
39 void * arg);
40
41CF_EXPORT int
42CF_Thread_Release (CF_Thread * threadID);
43
44CF_EXPORT int
45CF_Thread_Join (CF_Thread * threadID);
46
47CF_EXPORT int
48CF_Mutex_Create (CF_Mutex * mutex);
49
50CF_EXPORT int
51CF_Mutex_Destory (CF_Mutex * mutex);
52
53CF_EXPORT int
54CF_Mutex_Lock (CF_Mutex * mutex);
55
56CF_EXPORT int
57CF_Mutex_Unlock (CF_Mutex * mutex);
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif // #ifndef __CF_THREAD_H__
Note: See TracBrowser for help on using the repository browser.