2013-07-02 2 views
0

사용자의 연결을 처리하는 직원이 10 명 있습니다. worker는 FCGIFCGI::ProcManager을 사용하여 Perl로 구현됩니다.Perl의 작업자가 퓨처를 기다리는 연결을 처리하지 않습니다.

때때로 한 명의 작업자가 연결 처리를 중지합니다. 스트레칭 디스플레이 :

futex(0x7fa9ebde0e80, FUTEX_WAIT_PRIVATE, 2, NULL 

즉, futex에서 대기합니다.

작업자는 대기 상태에서 복귀하지 않습니다.

우리가

kill -9 

이 노동자를 죽일 경우, 부모가 그것을 얻을. 리턴 코드는 9입니다.

프로젝트가로드됩니다. 이 문제는 매우 드물게 나타납니다.

+0

뭐죠? –

+0

작업자는 대기 상태에서 복귀하지 않습니다. – drlexa

+0

좋아, 너는 우리에게 왜 그걸 알기를 원합니까? 또는 그것을 고치는 방법 또는 무엇? 질문은 아직 명확하지 않다. –

답변

0

futex man page에 따르면

퓨 텍스에 설명 된대로이 시스템 호출은 일반적으로, 공유 메모리에 잠금의 주장 케이스를 구현하는 데 사용됩니다 (7)

그래서 내 첫 번째 질문 : "Perl Threads"를 사용하는 Perl 스크립트이고 공유 메모리 변수에 대한 경합이 있습니까?

+0

"Perl Threads"를 명시 적으로 사용하지 않습니다. 공유 메모리 변수를 명시 적으로 사용하지 않습니다. 아마도 표준 모듈 중 하나가이를 사용합니다. – drlexa

관련 문제