ReactOS  0.4.15-dev-1150-g593bcce
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 
14 int main( void )
15 {
16  DWORD id, Status;
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 }
#define CreateEvent
Definition: winbase.h:3588
#define TRUE
Definition: types.h:120
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
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
#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:136
DWORD WINAPI thread(LPVOID crap)
Definition: event.c:6
int main(void)
Definition: event.c:14
#define WAIT_OBJECT_0
Definition: winbase.h:387
#define WINAPI
Definition: msvc.h:6
unsigned long DWORD
Definition: ntddk_ex.h:95
#define WAIT_TIMEOUT
Definition: dderror.h:14
Status
Definition: gdiplustypes.h:24
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
Definition: synch.c:714
HANDLE events[2]
Definition: event.c:4
GLenum GLuint id
Definition: glext.h:5579
#define INFINITE
Definition: serial.h:102
#define printf
Definition: config.h:203