我是Erlang的新手,我想暂停一个函数。我使用具有无限超时的接收,我的功能如下:
suspend() ->
receive
after
infinity->ok
end.
当我运行透析器工具时,它返回“功能没有本地返回值”。我应该用timer:sleep(infinity)代替此功能。要暂停,哪个更好?非常感谢。
答案 0 :(得分:1)
函数timer:sleep/1
定义为:
sleep(T) ->
receive
after T -> ok
end.
基本上与您的suspend/0
函数相同,因此这两种方法都可以使用。不过,我建议您使用timer:sleep/1
,因为它已经为您定义了,任何阅读它的人都会立即知道它是什么以及它的作用。