bzr branch
http://gegoxaren.bato24.eu/bzr/simpletypesystem/trunk
|
86
by Gustav Hartvigsson
* added external .h files for dealing with stuff that may or may not be avalible on scertain platforms. |
1 |
/*
|
2 |
* C11 <threads.h> emulation library
|
|
3 |
*
|
|
4 |
* (C) Copyright yohhoy 2012.
|
|
5 |
* Distributed under the Boost Software License, Version 1.0.
|
|
6 |
*
|
|
7 |
* Permission is hereby granted, free of charge, to any person or organization
|
|
8 |
* obtaining a copy of the software and accompanying documentation covered by
|
|
9 |
* this license (the "Software") to use, reproduce, display, distribute,
|
|
10 |
* execute, and transmit the Software, and to prepare [[derivative work]]s of the
|
|
11 |
* Software, and to permit third-parties to whom the Software is furnished to
|
|
12 |
* do so, all subject to the following:
|
|
13 |
*
|
|
14 |
* The copyright notices in the Software and this entire statement, including
|
|
15 |
* the above license grant, this restriction and the following disclaimer,
|
|
16 |
* must be included in all copies of the Software, in whole or in part, and
|
|
17 |
* all derivative works of the Software, unless such copies or derivative
|
|
18 |
* works are solely in the form of machine-executable object code generated by
|
|
19 |
* a source language processor.
|
|
20 |
*
|
|
21 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22 |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23 |
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
|
24 |
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
|
25 |
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
|
26 |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
27 |
* DEALINGS IN THE SOFTWARE.
|
|
28 |
*/
|
|
29 |
#ifndef EMULATED_THREADS_H_INCLUDED_
|
|
30 |
#define EMULATED_THREADS_H_INCLUDED_
|
|
31 |
||
32 |
#include <time.h> |
|
33 |
||
34 |
#ifndef TIME_UTC
|
|
35 |
#define TIME_UTC 1
|
|
36 |
#endif
|
|
37 |
||
|
87
by Gustav Hartvigsson
I have no idea why this is not working...0_o... |
38 |
//#include "c99_compat.h" /* for `inline` */
|
|
86
by Gustav Hartvigsson
* added external .h files for dealing with stuff that may or may not be avalible on scertain platforms. |
39 |
|
40 |
/*---------------------------- types ----------------------------*/
|
|
41 |
typedef void (*tss_dtor_t)(void*); |
|
42 |
typedef int (*thrd_start_t)(void*); |
|
43 |
||
44 |
struct xtime { |
|
45 |
time_t sec; |
|
46 |
long nsec; |
|
47 |
};
|
|
48 |
typedef struct xtime xtime; |
|
49 |
||
50 |
||
51 |
/*-------------------- enumeration constants --------------------*/
|
|
52 |
enum { |
|
53 |
mtx_plain = 0, |
|
54 |
mtx_try = 1, |
|
55 |
mtx_timed = 2, |
|
56 |
mtx_recursive = 4 |
|
57 |
};
|
|
58 |
||
59 |
enum { |
|
60 |
thrd_success = 0, // succeeded |
|
61 |
thrd_timeout, // timeout |
|
62 |
thrd_error, // failed |
|
63 |
thrd_busy, // resource busy |
|
64 |
thrd_nomem // out of memory |
|
65 |
};
|
|
66 |
||
67 |
/*-------------------------- functions --------------------------*/
|
|
68 |
||
|
88
by Gustav Hartvigsson
* Made the SMutex code compile. |
69 |
#if /*(defined(__WIN32__) || defined(__WIN64__)) &&*/ HAVE_MTHREAD /*&& !defined(__CYGWIN__)*/ |
70 |
#include "threads_win32.h" |
|
71 |
#elif HAVE_PTHREAD
|
|
72 |
#include "threads_posix.h" |
|
|
86
by Gustav Hartvigsson
* added external .h files for dealing with stuff that may or may not be avalible on scertain platforms. |
73 |
#else
|
|
88
by Gustav Hartvigsson
* Made the SMutex code compile. |
74 |
#error Not supported on this platform. |
|
86
by Gustav Hartvigsson
* added external .h files for dealing with stuff that may or may not be avalible on scertain platforms. |
75 |
#endif
|
76 |
||
77 |
||
78 |
||
79 |
#endif /* EMULATED_THREADS_H_INCLUDED_ */ |
|
80 |