當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang unlink(Id)用法及代碼示例


類型:
Id = pid() | port()

刪除調用進程與另一個進程或由 Id 標識的端口之間的鏈接。我們將從這裏調用已識別的進程或端口取消鏈接。

可以使用以下命令設置鏈接link/1BIF。有關鏈接和由於鏈接而導致的退出信號的更多信息,請參閱流程中的章節Erlang參考手冊

一次unlink(Id)返回後,保證調用者和未鏈接者之間的鏈接對將來的調用者沒有影響(除非再次建立鏈接)。請注意,如果調用者是陷阱出口, 一個{'EXIT', Id, ExitReason}由於鏈接而產生的消息可能在調用之前已被放置在調用者的消息隊列中unlink(Id)調用完成。另請注意,{'EXIT', Id, ExitReason}消息可能是鏈接的結果,但也可能是通過調用exit/2BIF。因此,在調用後清理消息隊列可能合適,也可能不合適。unlink(Id)退出時如下:

unlink(Id),
receive
    {'EXIT', Id, _} ->
        true
after 0 ->
        true
end

鏈接刪除是異步執行的。如果這樣的鏈接不存在,則不執行任何操作。的詳細說明鏈路協議可以在分發協議的章節ERTS 用戶指南.

注意

有關分布式信號的一些重要信息,請參閱 阻止信號傳輸部分中的流程的章節Erlang參考手冊.

失敗:badarg(如果 Id 未識別進程或節點本地端口)。

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 unlink(Id) -> true。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。