[bglug] Reagire al deadlock in multithtread app
mlpita@bergamo3.it
mlpita@bergamo3.it
Mar 29 Nov 2005 12:24:01 CET
Ciao a tutti,
Ho due programmi, uno ad alta priorità che deve sempre girare ed uno a bassa
priorità che mostra i dati elaborati dal primo. I due processi comunicano con
SharedMemory (shmget, shmat) con accesso sincronizzato da un Named Semaphore
condiviso (sem_open, sem_post, sem_wait).
Entrambi i processi hanno un thread timerizzato in cui leggono o scrivono i
dati sulla SharedMemory. All' inizio ed alla fine della funzione
"DoTimedWork" del thread vengono fatte la sem_wait e la sem_post.
Nel caso che la seconda applicazione (visualizzatore) si impianti durante la
lettura della memoria condivisa all' interno del blocco di sincronismo senza
rilasciare il semaforo, come posso fare ad evitare che il primo processo se
ne accorga ed invalidi il semaforo per poi ricrearlo?
Ho cercato su internet ma non ho trovato nulla a riguardo, se qualcuno è in
grado di aiutarmi....
Grazie, Diego
Maggiori informazioni sulla lista
bglug