list convert to pid function list_to_pid/1 restric

2019-05-06 22:15发布

问题:

When test open source project 'gproc' function, I found list_to_pid is ok for local pid, and not ok for remote pid. My erlang runtime is R15B.

(dist_test_n2@yus-iMac.local)29> D = list_to_pid("<0.239.0>").
<0.239.0>
(dist_test_n2@yus-iMac.local)30> D == self(). %% equal here
true
(dist_test_n2@yus-iMac.local)31> f(E).
ok
(dist_test_n2@yus-iMac.local)32> E = gproc:where(Name).       
<8969.239.0>
(dist_test_n2@yus-iMac.local)33> F = list_to_pid("<8969.239.0>").
<8969.239.0>
(dist_test_n2@yus-iMac.local)34> F == E. %% not equal here
false

From user guide about this function, there is no such restriction. Is it bug?

回答1:

as you can confirm here it's not possible to use list_to_pid/1 with external pids.

If you check on google I think you can also find the original thread started by Ulf Wiger.

Hope this helps!



标签: erlang