예약 서비스에 사용되는 데이터베이스 테이블에 삽입하기 위해 액세스 제어를 구현했습니다. 그것은 얼마 동안 괜찮 았는데, sem_get()
후에 sem_release()
을 호출 했음에도 불구하고 sem_get()
함수가 실패합니다.PHP sem_get 함수가 실패했습니다.
case 'room':
$key = "room";
$semaphore = sem_get($key, 1, 0666, 1);
if ($semaphore) {
sem_acquire($semaphore);
//do some stuff
if ($already_reserved_rooms < $max_rooms) {
$return="ok";
sem_release($semaphore);
return $return;
}
sem_release($semaphore);
}
else {
//send me mail that semaphore failed
}
return 'no rooms';
break;
도 sem_remove()
으로 전화해야합니까?
나는 this 사이트의 단계를 따른다.
, 그것은 경고를 기록합니다. 우리에게 경고를 보여주십시오. –
'sem_remove'에 대한 설명에서 말하자면, ** 모든 ** 프로세스에서 세마포어로 완전히 완료되기 전에 당신이하고 싶은 일이 분명하지 않습니다. – apokryfos
답장을 보내 주셔서 감사합니다. SysV semaphore 5 (key 0x214)가 현재 획득되지 않았습니다. – JokerDev