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

Reply via email to