Ben güvenli bir paylaşılan kaynak güncellemek için bir php komut aşağıdaki kod parçasını kullanıyorum.
$lock_id = sem_get( ftok( 'tmp/this.lock', 'r'));
sem_acquire($lock_id)
//do something
sem_release($lock_id)
Ben istekleri çok sayıda bu kodu stres testi ne zaman bir hata alıyorum:
Warning: semop() failed acquiring SYSVSEM_SETVAL for key 0x1e: No space left on device in blahblah.php on line 1293
php kaynakları başarısız edinme SYSVSEM_SETVAL için aşağıdaki kodu gösterir
while (semop(semid, sop, 3) == -1) {
if (errno != EINTR) {
php3_error(E_WARNING, "semop() failed acquiring SYSVSEM_SETVAL for key 0x%x: %s", key, strerror(errno));
break;
}
}
hangi semop EINTR ile başarısız demektir. man sayfası semop () sistem çağrısı bir sinyal tarafından kesildi ortaya koymaktadır.
Benim soru güvenle bu hatayı görmezden ve sem_acquire yeniden olabilir mi?
Edit: Ben bu sorunu yanlış anlamış, Pl aşağıda attılar açıklama bakın.
hükümdarlık