[問題] 程式被Blocking住了要怎麼出來

看板Perl作者 (蜥蜴)時間17年前 (2007/10/25 21:27), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
繼之前被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

10/25 22:15, , 1F
如果是Win32建議使用Win32API::CommPort
10/25 22:15, 1F

10/25 22:15, , 2F
或者使用其他Non-Blocking I/O的方式來達到非阻塞
10/25 22:15, 2F

10/25 22:21, , 3F
3Q3Q~我明天試試看
10/25 22:21, 3F
文章代碼(AID): #1789cwPD (Perl)
文章代碼(AID): #1789cwPD (Perl)