2012-10-27 2 views
1

spawn_link를 사용하여 동적 하위를 생성하는 관리자가 있습니다. 나는 새 자식을 만들 때 :하위 프로세스에 이름을 지정하십시오.

create_my_child(). 

는 반환 :

{ok, <0.324.0>}

때문에 모든 행복. 나는 콘솔에서 아이에게 변수를 할당하려고 :

{ok,X} = create_my_child() 

내가 말하는 오류가 발생합니다 :

exception error: no match of right hand side value

을 다음과 같이 말한다 :

{supervisor,do_start_child_i,3

나는 모든 어려운 일을 수행,이 작업을 수행 할 수 있습니다 자식 프로세스를 위해서? 은 "오른쪽없이 일치"실패

답변

2

콘솔에서이 모든 일을하는 경우는, 다음 X는 이미 첫째 spawn_link 전화로의 pid 반환에 바인딩되고, 이후의 시도는 create_my_child() 호출 {ok, X}에 맞게 오류.

Erlang에서는 변수가 변경 될 수 없으므로 X에 이미 값이있는 경우 다시 할당 할 수 없습니다. 콘솔에서 쉘의 변수를 지우려면 f()을 수행 할 수 있지만 더 쉬운 해결 방법은 단순히 다른 변수 (예 : X2)를 바인딩하는 것입니다.

관련 문제