una regione critica fatta con un semaforo:
qualcuno ha aperto il file e lo sta modificando:
creo un file .lock e lo lascio li finchè quello che ha aperto il file non lo chiude (quando lo chiude elimini il file .lock)
prima di entrare in regione critica verifico se il semaforo è rosso (file .lock esistente) e se lo è do un messaggio d'errore e dico di riprovare più tardi (qualcuno sta già smanettando sul file)...
se vuoi farla più raffinata puoi fare qualcosa che tenti di implementare un semaforo numerico con una coda dove la gente si può mettere in lista...
ovviamente procedendo in quel modo rischi lo stallo: un utente non chiude il file e tutti gli altri aspettano a tempo indeterminato...
qualcosa di già pronto lo trovi con la funzione flock:
http://www.php.net/flock
;)
Ultima modifica di Evcz : 21-11-2005 alle ore 00.26.44
There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...