blob: 91c2bb032c8492241eae3348c28675b2e55cba76 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#include <tv/configtv.h>
#ifdef TVCompf_djgpp
#include <dpmi.h>
#include <unistd.h>
void CLY_YieldProcessor(int micros)
{
__dpmi_yield();
if (micros>0)
usleep(micros);
}
#endif
#if defined(TVOSf_QNX4)
#include <time.h>
static void usleep(unsigned long sleeptime)
{
struct timespec wait;
wait.tv_sec=0;
wait.tv_nsec=sleeptime;
do {
if (nanosleep(&wait, &wait)==0)
{
break;
}
} while(1);
}
#endif // TVOSf_QNX4
#ifdef TVOS_UNIX
#include <unistd.h>
// See if this system have the POSIX function
#if 0 //def _POSIX_PRIORITY_SCHEDULING
#include <sched.h>
void CLY_YieldProcessor(int micros)
{
sched_yield();
if (micros>0)
usleep(micros);
}
#else
// No POSIX, just sleep
void CLY_YieldProcessor(int micros)
{
if (micros<0)
micros=10000; // 10 ms
usleep(micros);
}
#endif
#endif
#ifdef TVComp_BCPP //TVOSf_NT
void CLY_YieldProcessor(int micros)
{
extern void __tvWin32Yield(int micros);
if (micros<0)
micros=27472; // 1000000 / (18.2 * 2)
__tvWin32Yield(micros);
}
#endif
#if defined(TVOS_Win32) && !defined(TVComp_BCPP) //!defined(TVOSf_NT)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
void CLY_YieldProcessor(int micros)
{
Sleep(micros/1000);
}
#endif
|