Quota:
Originariamente inviato da LoryOne
Vediamo un po.
La prima istanza dovrebbe:
1) Creare il primo semaforo per se stessa.
2) Creare il secondo semaforo per la seconda istanza
3) Creare la memoria condivisa
4) Restare in attesa della seconda istanza che liberi il primo semaforo.
Quindi è la seconda istanza che deve rilasciarlo.
Lo fa ?
Non mi sembra.
|
Non lo fa con il ReleaseSemaphore(sem[0],1,&dummy);?
Quota:
Ricontrolla ed assicurati che possano essere lanciate solo 2 istanze dello stesso programma e che soprattutto la prima rimanga in attesa della seconda.
|
Che partiranno due sole istanze sarà sicuro quando avrò fatto un batch per il lancio del programma come suggeritomi da web. Per il momento per esserne sicuro starò attento a far partire 2 sole istanze manualmente.
Quota:
Ti assicuro che NON FUNZIONA per niente
|
L'ho appena constatato, ho creato l'exe e l'ho fatto partire 2 volte, entrambe le volte va nel else del main, ovvero è come se fossero entrambe una seconda istanza. Pare che l'HANDLE per il sem[0] sia già valido prima che parta la prima istanza
, perché questo?
E soprattutto, perché hai messo questa faccina
?