Richard: Semaphoren nicht sauber gelöscht!

Beitrag lesen

hi zusammen,

ich benutze semaphoren zum absichern von exclusiven prozessen. die 2 funktionen werden so aufgerufen:

function mach_was() {

$filename = "irgendwas/test.txt";
    if (!file_exists($filename)) {
         $fp=fopen($filename,'w');
   fclose($fp);
        }
 $SEM_ID = sem_lock($filename);

[... HIER FÜHRE ICH WAS AUS ...]

sem_unlock($SEM_ID);
 @unlink($filename);
}

function sem_lock ($filename) {
 if(function_exists('ftok')){
     $sem_key = ftok($filename, "A");
     $sem_id = sem_get($sem_key, 1);
     sem_acquire($sem_id);
     return $sem_id;
 }
}

function sem_unlock($sem_id) {
    if(function_exists('sem_release')){
  sem_release($sem_id);
 }
}

nun habe ich das problem, daß sich im speicher semaphoren sammeln. obwohl ignore_user_abort() aktiviert ist. das macht den ganzen server platt. kann mir da jemand helfen?