2012-11-30 44 views
0

我有以下的Erlang函數調用另一個函數,並等待 40秒,然後打印的東西, 的問題是,當我嘗試將花費更多的時間比 運行程序接收語句返回到Erlang shell 40秒。 這個問題的原因是什麼?二郎計時器不返回準時

reboot_node_return(Sc) -> 
    linux(Sc, "reboot -f"), 
    receive _ -> ok 
    after 40000 -> 
     io:format("successfull reboot:~n") 
end. 

-A

+3

就是Linux/2異步函數? –

+0

我不確定,linux/2只是使用Erlang os:cmd/1函數在Linux集羣上調用系統命令。所以我認爲這是一個異步功能。 – coffeMug

+2

現在問題已解決,我使用ssh連接在遠程集羣上運行重新啓動命令,並且因爲我使用-f ssh正在等待命令完成,並且導致該功能等待更多時間比我在睡眠功能中給出的要多。 – coffeMug

回答

0
reboot_node_return(Sc) -> 
    linux(Sc, "reboot "), 
    receive _ -> ok 
    after 40000 -> 
     io:format("successfull reboot:~n") 
end.