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

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

#1 separate example code and doxygen comment and fix logging push logic by vfire

File size: 1.6 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#define CF_ERROR_THREAD_CREATE CF_ERROR_THREAD - 1
16#define CF_ERROR_THREAD_INVALID_ARGS CF_ERROR_THREAD - 2
17
18#define CF_ERROR_MUTEX_CREATE CF_ERROR_MUTEX - 1
19#define CF_ERROR_MUTEX_INVALID_ARGS CF_ERROR_MUTEX - 2
20
21#ifdef _WIN32
22# define CF_THREAD_RETURN unsigned int /**< 스레드 워커 함수 반환 형 */
23# define CF_THREAD_CALL __stdcall /**< 스레드 워커 함수 호출 규약 */
24#else // #ifdef _WIN32
25# define CF_THREAD_RETURN void * /**< 스레드 워커 함수 반환 형 */
26# define CF_THREAD_CALL /**< 스레드 워커 함수 호출 규약 */
27#endif // #ifdef _WIN32
28
29/** 스레드 워커 함수 형태이며, CF_Thread_Function 형식 */
30typedef CF_THREAD_RETURN (CF_THREAD_CALL * CF_Thread_Function) (void *);
31
32/** 스레드 아이디 */
33typedef void * CF_Thread;
34
35/** 뮤텍스 아이디 */
36typedef void * CF_Mutex;
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42CF_EXPORT int
43CF_Thread_Create (CF_Thread * threadID,
44 CF_Thread_Function callback,
45 void * arg);
46
47CF_EXPORT int
48CF_Thread_Release (CF_Thread * threadID);
49
50CF_EXPORT int
51CF_Thread_Join (CF_Thread * threadID);
52
53CF_EXPORT int
54CF_Mutex_Create (CF_Mutex * mutex);
55
56CF_EXPORT int
57CF_Mutex_Destory (CF_Mutex * mutex);
58
59CF_EXPORT int
60CF_Mutex_Lock (CF_Mutex * mutex);
61
62CF_EXPORT int
63CF_Mutex_Unlock (CF_Mutex * mutex);
64
65#ifdef __cplusplus
66}
67#endif
68
69#endif // #ifndef __CF_THREAD_H__
Note: See TracBrowser for help on using the repository browser.