gpt4 book ai didi

php - 一段时间后信号量键丢失

转载 作者:行者123 更新时间:2023-12-03 11:22:51 26 4
gpt4 key购买 nike

我有一个使用共享内存的父子进程。
child 每秒将数据放入共享内存约 10 次。
parent 和 child 在写/读时使用信号量来锁定资源。
这个解决方案工作了几个小时,然后我开始收到警告:

PHP Warning: sem_acquire(): failed to acquire key 0x4101f1fb: Invalid argument in script.php on line 350
PHP Warning: sem_release(): SysV semaphore 140105644163240 (key 0x4101f1fb) is not currently acquired in script.php on line 354



看起来脚本超过了某个限制并且信号量被破坏了,但是我在 ipcs 中找不到任何关于当前限制/使用的内容。

我还尝试使用 sem_get 以获得新的信号量 ID,但我无法通过共享内存将其传递给子进程 shm_put_var 不使用资源。

在长时间运行的进程中处理信号量的最佳方法是什么?

最佳答案

可能是 PHP 中一直存在的错误:
https://bugs.php.net/bug.php?id=44109
第一个(也是唯一一个)评论谈到了 ~32000 个信号量标识符,而且这个数字是不可调整的......

关于php - 一段时间后信号量键丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com