我正在使用信号量来同步我的应用程序中的某些部分.
@H_502_1@在释放信号量(sem_release)时,我收到了这个警告:
>我确实得到错误’错误获取信号量’与类似的警告’sem_acquire():未能获取密钥0xc:标识符被删除’,但不是在同一时间(天)我得到’错误释放信号量’
>上面的类在不同的地方使用,以同步部分应用程序代码.我对其他键没有任何问题.是的,这个键“12”/“0xc”仅在一个地方和同一个用户使用.
>不应出现权限问题,因为如果检查信号量的权限“0xc”是“666”
@H_502_1@sem_release(): Failed to release key 0xc: Invalid argument@H_502_1@首先我不知道信号量是否已经释放,但由于我没有得到“真实”的结果,我猜它不会释放. @H_502_1@PHP版本:5.6.30 @H_502_1@ipcs -V => ipcs来自util-linux 2.25.2 @H_502_1@这是信号量:
key semid owner perms nsems 0x0000000c 4124122 myUser 666 3@H_502_1@这是代码的一部分(类Synchronization):
... if ( !( $this->semaphoreId = sem_get( $this->id,1 ) ) ) throw new RuntimeException( 'Error getting Semaphore.'); ... if ( !sem_acquire( $this->semaphoreId ) ) throw new RuntimeException( 'Error acquiring Semaphore.'); ... if ( !sem_release( $this->semaphoreId ) ) throw new RuntimeException( 'Error releasing Semaphore.');@H_502_1@附:我只是在我的生产环境中遇到此错误,而且我无法在我的测试环境中重现/调试. @H_502_1@我在互联网上搜索了这条错误消息,但我一无所获. @H_502_1@有谁知道这个消息是什么意思? @H_502_1@编辑: @H_502_1@>每次运行脚本时都不会显示错误消息.
>我确实得到错误’错误获取信号量’与类似的警告’sem_acquire():未能获取密钥0xc:标识符被删除’,但不是在同一时间(天)我得到’错误释放信号量’
>上面的类在不同的地方使用,以同步部分应用程序代码.我对其他键没有任何问题.是的,这个键“12”/“0xc”仅在一个地方和同一个用户使用.
>不应出现权限问题,因为如果检查信号量的权限“0xc”是“666”