못찾겠다 ..
문득 더 생각난 것이 있는데요.
같은 스레드에서 php 콜을 2번 하였는데 데드락이 발생하지 않았어요.
php의 TSRM모듈은 ts_resource_ex 함수를 가지고 있는데 이 함수는 스레드 컨텍스트를 리소스 영역으로 사용하면서 이 블록을 나누어 동시성 제어를 해요.
[1] php-src/TSRM/TSRM.c at master · php/php-src · GitHub
망했쩌 ..
이렇다면 cpu 99.99% 발생 지점은 다른데 있을 것이어요.
케누님 댓글대로 서버 사양을 업그래이드 하면 되는 문제일 지도 모르겠어요. 애초에 버퍼 오버런을 제어하지 못하는 문제이면 답이 없쩌.
메모리 여유가 256mb나 있는데도 이러면 이상하지 않나요.
php 8.3부터 여전히 php_tsrm_startup 함수로 허용 스레드 1개를 사용하지만 php_tsrm_startup_ex 함수로 허용 스레드를 여러개 가질 수 있어서 이것도 적용해보아야 하겠어요.
[2] php-src/main/main.c at master · php/php-src · GitHub
이케대면 언제 다 하겠나요.
