作者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
1F:推 LiloHuang:如果是Win32建议使用Win32API::CommPort 10/25 22:15
2F:→ LiloHuang:或者使用其他Non-Blocking I/O的方式来达到非阻塞 10/25 22:15
3F:推 imce:3Q3Q~我明天试试看 10/25 22:21