我一直在使用Erlide for eclipse在七周内完成七种语言中的Erlang教程,并且在大多数情况下似乎都很好,直到我进入并发部分。
在本节中,作者将介绍一个简单的示例
loop() ->
receive
"casa" ->
io:format("house~n"),
loop();
"blanca" ->
io:format("white~n"),
loop();
_ -> io:format("no comprendo~n"),
loop()
end.
当按照书上的建议运行时,我应该能够用Pid ! "someStuff".
发送消息。然而,当运行这个时,没有返回任何内容,并且调试器要求我在任何活动恢复之前杀死进程。
这是一个控制台的例子。您将看到,当我发送消息时,没有返回任何内容。
Eshell V5.10.4
(ErlangDay3@Jeff-PC)1> Pid = spawn(fun translate:loop/0).
<0.202.0>
(ErlangDay3@Jeff-PC)2> Pid ! "casa".
Pid ! "hello?".
WhatJustHappened.
这一切似乎都可以通过直接使用shell(没有eclipse和erlide)的命令行完美地运行。我是不是漏掉了什么配置?我现在完全被难住了。我意识到也许SO不是解决这个问题的最佳地点,但是我已经完全耗尽了我的google-fu,而且似乎erlide没有任何论坛存在。
谢谢所有的建议。
如果它有帮助,我正在运行windows 7和eclipse (STS, 3.3.0),与Erlang 5.10.4 (R16B03-1)
谢谢你的报道!
这是一个bug,我一直在寻找不成功,因为一段时间后,但现在我设法找到并修复它。请尝试从http://download.erlide.org/update/nightly