Solved

Synchronization between instances of same processes using CreateEvent

Posted on 2014-03-19
1
303 Views
Last Modified: 2014-03-27
Hello experts

I have a problem when synchronizing the same instances of a process. My application will call from other jobs simultaneously , it instantiate the multiple instances of the application.

 I want to create a event in the application and signal it  after completion of one instance I will un-signal it,  other instances should instances should wait until first completes.

created sample code. but it is in infinite loop.

            HANDLE  hEvent1 = CreateEvent ( NULL , true , false , L"MyEvent" );
            hEvent = OpenEvent ( EVENT_ALL_ACCESS , false, L"MyEvent" );
            if(GetLastError () == ERROR_ALREADY_EXISTS)
            {
                  while (WaitForSingleObject(hEvent,INFINITE)==WAIT_OBJECT_0)
                  {
                        Sleep(0);
                  }
                  SetEvent (hEvent);
            }
            else
                  SetEvent (hEvent );




//in the ending of application.
ResetEvent (hEvent);


Please advise
Thanks in advance
0
Comment
Question by:HarishMinu
1 Comment
 
LVL 34

Accepted Solution

by:
sarabande earned 500 total points
ID: 39944788
HANDLE  hEvent1 = CreateEvent ( NULL , true , false , L"MyEvent" );
 hEvent = OpenEvent ( EVENT_ALL_ACCESS , false, L"MyEvent" );

I would assume that the second call would return with success but has the GetLastError as ERROR_ALREADY_EXIST. then you wait infinite on the event created by the instance itself.

you would either need to pass the EVENT_ALL_ACCESS with the CreateEvent and omit the OpenEvent call (note the CreateEvent would also work for an already created event and would return a valid handle).  or you would check the GetLastError before calling OpenEvent. I would prefer the first alternative.

Sara
0

Featured Post

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How To Display a Conditional Image in a Microsoft Access Report 23 107
Is IHttpActionResult a promise pattern? 2 74
SSRS troubles 4 86
Shared files and folders migration 2 31
This article describes how to programmatically preset the "Pages per Sheet" option that's available with most printer drivers.   This setting lets you do "n-Up" printing, where two, four, or more pages are printed on each sheet of paper. If your …
With most software applications trying to cater to multiple user needs nowadays, the focus is to make them as configurable as possible. For e.g., when creating Silverlight applications which will connect to WCF services, the service end point usuall…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

697 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question