ReactOS 0.4.16-dev-125-g798ea90
event.c
Go to the documentation of this file.
1#include <windows.h>
2#include <stdio.h>
3
5
7{
8 SetEvent( events[0] );
9 if( crap )
10 SetEvent( events[1] );
11 return 1;
12}
13
14int main( void )
15{
17 printf( "Creating events\n" );
18 events[0] = CreateEvent( 0, TRUE, FALSE, 0 );
19 events[1] = CreateEvent( 0, TRUE, FALSE, 0 );
20 printf( "Created events\n" );
21 CreateThread( 0, 0, thread, 0, 0, &id );
22 printf( "WaitForSingleObject %s\n", ( WaitForSingleObject( events[0], INFINITE ) == WAIT_OBJECT_0 ? "worked" : "failed" ) );
23 ResetEvent( events[0] );
24 CreateThread( 0, 0, thread, 0, 0, &id );
25 printf( "WaitForMultipleObjects with waitall = FALSE %s\n", ( WaitForMultipleObjects( 2, events, FALSE, INFINITE ) == WAIT_OBJECT_0 ? "worked" : "failed" ) );
26 ResetEvent( events[0] );
27 CreateThread( 0, 0, thread, (void *)1, 0, &id );
29 printf( "WaitForMultipleObjects with waitall = TRUE %s\n", ( Status == WAIT_OBJECT_0 || Status == WAIT_OBJECT_0 + 1 ? "worked" : "failed" ) );
30 ResetEvent( events[0] );
31 printf( "WaitForSingleObject with timeout %s\n", ( WaitForSingleObject( events[0], 100 ) == WAIT_TIMEOUT ? "worked" : "failed" ) );
32 return 0;
33}
static HANDLE thread
Definition: service.c:33
#define WAIT_TIMEOUT
Definition: dderror.h:14
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
#define INFINITE
Definition: serial.h:102
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:97
Status
Definition: gdiplustypes.h:25
GLuint id
Definition: glext.h:5910
HANDLE events[2]
Definition: event.c:4
int main(void)
Definition: event.c:14
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
Definition: synch.c:151
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
Definition: synch.c:714
#define CreateEvent
Definition: winbase.h:3748
#define WAIT_OBJECT_0
Definition: winbase.h:406
#define WINAPI
Definition: msvc.h:6