]> pd.if.org Git - liblfds/blob - liblfds/liblfds6.0.0/test/src/abstraction_thread_wait.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds6.0.0 / test / src / abstraction_thread_wait.c
1 #include "internal.h"
2
3
4
5
6
7 /****************************************************************************/
8 #if (defined _WIN32 && defined _MSC_VER && !defined WIN_KERNEL_BUILD)
9
10   /* TRD : any Windows (user-mode) on any CPU with the Microsoft C compiler
11
12            _WIN32             indicates 64-bit or 32-bit Windows
13            _MSC_VER           indicates Microsoft C compiler
14            !WIN_KERNEL_BUILD  indicates Windows user-mode
15   */
16
17   void abstraction_thread_wait( thread_state_t thread_state )
18   {
19     WaitForSingleObject( thread_state, INFINITE );
20
21     return;
22   }
23
24 #endif
25
26
27
28
29
30 /****************************************************************************/
31 #if (defined _WIN32 && defined _MSC_VER && defined WIN_KERNEL_BUILD)
32
33   /* TRD : any Windows on any CPU with the Microsoft C compiler
34
35            _WIN32            indicates 64-bit or 32-bit Windows
36            _MSC_VER          indicates Microsoft C compiler
37            WIN_KERNEL_BUILD  indicates Windows kernel
38   */
39
40   void abstraction_thread_wait( thread_state_t thread_state )
41   {
42     KeWaitForSingleObject( thread_state, Executive, KernelMode, FALSE, NULL );
43
44     return;
45   }
46
47 #endif
48
49
50
51
52
53 /****************************************************************************/
54 #if (defined __unix__)
55
56   /* TRD : any UNIX on any CPU with any compiler
57
58            I assumed pthreads is available on any UNIX.
59
60            __unix__   indicates Solaris, Linux, HPUX, etc
61   */
62
63   void abstraction_thread_wait( thread_state_t thread_state )
64   {
65     pthread_join( thread_state,  NULL );
66
67     return;
68   }
69
70 #endif
71