作者imce (蜥蜴)
看板perl
標題[問題] 程式被Blocking住了要怎麼出來
時間Thu Oct 25 21:27:21 2007
繼之前被socket blocking住,用thread解決了,
這次寫Rs-232的程式又被block住,想說這樣也不是辦法,就去找alarm的用法。
以下是Advanced Perl Programming.的範例,可是我執行後還是block住了
等好久都不會出來>_<,請問alarm到底要怎麼用阿。
$|=1;
$SIG{ALRM} = \&timed_out;
eval {
alarm (5);
$buf = <>;
alarm(0); # Cancel the pending alarm if user responds.
};
if ($@ =~ /GOT TIRED OF WAITING/) {
print "Timed out. Proceeding with default\n";
}
sub timed_out {
die "GOT TIRED OF WAITING";
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.103.109
推 LiloHuang:如果是Win32建議使用Win32API::CommPort 10/25 22:15
→ LiloHuang:或者使用其他Non-Blocking I/O的方式來達到非阻塞 10/25 22:15
推 imce:3Q3Q~我明天試試看 10/25 22:21