#include <string.h>
#include <windows.h>
#include <stdio.h>



#define MUTEX_NAME "Mutex Object of Sample 1"

main(){
	int i,j;	
	HANDLE hMutex;		
	STARTUPINFO sinfo;	
	PROCESS_INFORMATION pinfo;		
	int status;

	hMutex = CreateEvent(NULL,FALSE,FALSE,MUTEX_NAME);
	
	GetStartupInfo(&sinfo);
	status = CreateProcess ("mutexchild.exe", 
		NULL, // lpCommandLine 
		NULL, // lpProcessAttributes 
		NULL, // lpThreadAttributes 
		TRUE, // bInheritHandles,
		REALTIME_PRIORITY_CLASS|CREATE_NEW_CONSOLE,//dwCreationFlags 
		NULL, // lpEnvironment 
		NULL, // lpCurrentDirectory
		&sinfo, // lpStartupInfo 
		&pinfo // lpProcessInformation 
	);


	for(j=0; j<10; j++){				
		printf("Parent process step %d\n",j);
		if(j==5)SetEvent(hMutex);
		Sleep(1000);
	}		
	WaitForSingleObject(pinfo.hProcess,INFINITE);
}