コード例 #1
0
 public static function commitRemove($entityManager, $fullUrl)
 {
     // Obtain Lock File
     $mutex = fopen("/var/www/html/lock/.lock", "w");
     if (!$mutex) {
         return array('mutex' => 'lock file failure');
     }
     // Try To Obtain Permission
     $trial = 0;
     while (!flock($mutex, LOCK_EX)) {
         echo "\r\nRetrying\r\n";
         sleep(1);
         $trial++;
         if ($trial >= 50) {
             // Clean-Up
             fclose($mutex);
             return array('mutex' => 'unable to get control permission');
         }
     }
     //global $sequence;
     //$sequence ++;
     //echo "\r\n<<<<<<<<<< commitRemove " . $sequence . " === ";
     // Succeed To Get Control
     try {
         $result = SitesXMLManager::_commitRemove($entityManager, $fullUrl);
     } catch (Exception $e) {
         echo $e->getMessage() . "\r\n\r\n";
         echo $e->getTraceAsString();
     }
     $entityManager->flush();
     // Clean-Up Anyway
     flock($mutex, LOCK_UN);
     fclose($mutex);
     //echo "commitRemove " . $sequence . " >>>>>>>>>>>\r\n";
     return $result;
 }