per ora ho scritto questo...
Codice PHP:
//è dentro una funzione, per questo è presente un return;
if(is_readable($file)){
do{
clearstatcache();
if(!is_readable($file))
aspetta();
else
return;
}while(true);
}
secondo voi può funzionare?
oppure si potrebbe utilizzare flock, tranne che il problema avviene appunto quando cerco di aprire il file con fopen!
esempio:
Codice PHP:
<?php
// waiting until file will be locked for writing (1000 milliseconds as timeout)
if ($fp = fopen($fileName, 'a')) {
$startTime = microtime();
do {
$canWrite = flock($fp, LOCK_EX);
// If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load
if(!$canWrite) usleep(round(rand(0, 100)*1000));
} while ((!$canWrite)and((microtime()-$startTime) < 1000));
//file was locked so now we can store information
if ($canWrite) {
fwrite($fp, $dataToSave);
}
fclose($fp);
}?>
considerazioni o consigli?