:왜 내 HUP 신호 처리기가 Perl의 전역 변수를 업데이트하지 않습니까? 나는 다음과 같은 일을 해요
# First i install a signal handler for HUP which sets a global flag.
$SIG{"HUP"} = sub { print "HUP received\n"; $received_hup = 1 };
# Now i wait for HUP to be received.
my $cnt = 0;
for ($cnt = 0; $received_hup != 1 and $cnt < 900; $cnt++) {
sleep(1);
}
print ($received_hup == 1) ? "true" : "false";
그런 다음 나는이 펄 프로세스에 HUP를 보내
나는 다음이있는 펄 스크립트를 실행합니다.
"HUP 수신"이 인쇄 될 때마다 가끔 false가 인쇄되는 것을 발견했습니다. 즉 신호 처리기가 호출 되더라도 전역 변수는 수정되지 않습니다.
필자는 Perl의 동시성 문제에 익숙하지 않으므로 안내해 주시기 바랍니다.
경고가 활성화 된 경우 경고가 표시되었다고 추가 할 수 있습니다. – ysth