調用!!方法從一個演員到另一個演員似乎仍然保持頻道打開,即使在主叫方收到答覆後(即:未來已準備就緒)。斯卡拉2.8Beta1演員
例如,使用!!從一個演員向另一個演員發送11個不同的消息將導致在原始調用者的郵箱中顯示與以下類似的11個消息,每個消息具有不同的Channel @ xxxx值。
!(scala.actors.Channel @ 11b456f,退出(com.test.app.actor.QueryActor @ 4f7bc2,「正常))
是這些消息來自工人正在等待答覆,原來的調用者在它自己調用exit()時發送Exit消息,或者它們是否在另一端生成,並且出於某種原因,具有上面顯示的打印形式?此時,工人演員已經退出,所以原來的主叫人!!絕對不會收到任何回覆。
這種行爲是不可取的,因爲原始調用actor的郵箱會填充這些退出消息(每次使用時爲每個通道創建一個)。
如何停止?原始來電者是否自動「鏈接」到每個頻道上創建的回覆頻道!呼叫?
看起來像未來創建時,它鏈接到將提供價值的演員。當值被設置時,我認爲它需要取消鏈接。這將阻止所有這些消息。此外,鏈接列表中的內容本質上是內存泄漏。 – 2010-02-24 13:24:53
Scala門票由Engbrecht先生製作 https://lampsvn.epfl.ch/trac/scala/ticket/3102 – 2010-02-24 15:04:29
@scaling_out Philipp現已關閉勾號。它應該在每晚的Scala主幹上或下一個Scala測試版上可用。 – 2010-03-08 19:58:03