Hi all, I just coded a cache mechanism for some slow code that looks like this:
$cache_file_name = "cache/$id/$tid". ($showall ? '_all.php' : '.php'); $cache_dir_name= "cache/$id"; if(!file_exists($cache_file_name) || @filectime($cache_file_name) + 30 < time() ) { if(!is_dir($cache_dir_name)) { mkdir($cache_dir_name, 0777); } $lock=@fopen($cache_file_name . '.lock','w'); if(flock($lock,LOCK_EX)) { include('modules/rally_live/create_cache.php'); flock($lock,LOCK_UN); } fclose($lock); } clearstatcache(); for($i=0;!file_exists($cache_file_name);$i++) { if($i==3) die('<b>Cannot read cache file!</b>'); clearstatcache(); } include($cache_file_name); // *sometimes includes empty file* echo "<!-- File $cache_file_name included -->"; The 'create_cache.php' creates a php code, that later needs to be executed. The problem is, the just created cache file seems to be empty *sometimes* when included, however, if I look at it, it does contain code. I do call fflush($cache_file) before closing it, so I don't see why the file is empty. If anyone can help me, I would be really glad. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php