Grazie per la risposta, qualche altro chiarimento.
1) perchè IS_FREE_LOCK dovrebbe introdurre un bug?
E' superfluo, nel senso che GET_LOCK è sufficiente, ma se c'è già un LOCK attivo aspetta il timeout prima di "morire".
Certo è possibile che qualcuno mi faccia un GET_LOCK tra le due istruzioni (is_free_lock ... get_lock mie), ma in questo caso non succede nulla, in quanto (... credo...) la get_lock "mia" andrebbe in timeout.
In sostanza nel caso migliore mi ritorna prima al programma (se il lock esiste), nel caso peggiore impiega lo stesso tempo.
O almeno così l'ho interpretato io...
2) Il suggerimento sulle transazioni è buono, ma quello che non so è se esiste un modo per farla andare in timeout piuttosto rapidamente. Nella documentazione non ho trovato nulla; ho aperto un thread nell'area PHP per vedere se si può fare in PHP ma non ho avuto nessuna risposta...
3) Ricapitolando quello che vorrei fare è un contatore diffuso, che viene incrementato con logiche più o meno complicate da più client (PHP), i quali però devono NON devo rimanere bloccati indefinitivamente aspettando la risposta.
Mi è capitato con un hosting diffuso (molto economico) che una porzione del mio programma rimanesse "congelata" anche per una 20ina di secondi , ma non so come forzare una terminazione anomala in un tempo minore.
Ecco perchè il GET_LOCK mi era tanto piaciuto, o almeno inizialmente...

Rispondi quotando