[erlang-questions] simple_one_by_one trouble and rare start_link/2 gen_fsm

Angel J. Alvarez Miguel <>
Thu Jun 21 09:30:15 CEST 2012


That's right...

But start_link it is expected to be or arity 3 and Opts is a property list.

but then on test:main/0 when i do supervisor:start_child(SupPid,Opts2) 

being Opts2 another property list, then suppervisor should call: 

apply(sim_group_fsm,start_link,Opts ++ Opts2) on its line 319 which in turn calls gen_fsm:start_link, thus providing a Pid in the end...  

but what it really does is apply(sim_group_fsm,start_link,Opts ++ Opts2,[ ]) and then crashes unless i declare a start_link/2 on my gen_fsm...

{
	{badmatch,
		{error,
			{'EXIT',
				{undef,
					[
					{sim_group_fsm,start_link,[[{option1,40}],[{option29,100}]],[]},
					{supervisor,do_start_child_i,3,[
												{file,"supervisor.erl"},
												{line,319}
												]}......

i dont see why i finish having a apply/4 call in supervisor: 319 instead of an apply/3...

I want the sup to propagate one property list to children specs while i will provide another during children spawns
providing that sup combines two in any way children will manage to demunge ...both property lists

So cant just see what im doing wrong....

/angel


PS: i changed a bit the test code to force sup crash

On Jueves, 21 de Junio de 2012 06:22:54 Vance Shipley escribió:
> On Thu, Jun 21, 2012 at 12:30:08AM +0200, Angel J. Alvarez Miguel wrote:
> }  While calling a simple_one_by_one supervisor to start a gen fsm I found
> }  it causes calling a start_link/2 function on the callback module of the
> }  gen_fsm.
> 
> You are specifying that function to be called to start the worker yourself.
> In your module group_supervisor.erl you provide a child_spec() in the
> return value of init/1:
> 
>   {mucfsm, {sim_group_fsm, start_link, [Opts]}, transient, 60, worker,
> [sim_group]}
> 
> 
> The form of which is:
> 
>    {Id, StartFunc, Restart, Shutdown, Type, Modules}
> 
> The second argument, StartFunc, has the form:
> 
>    {Module, Function, Arguments}
> 
> You provided:
> 
> 	{sim_group_fsm, start_link, [Opts]}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: group_supervisor.erl
Type: text/x-erlang
Size: 528 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120621/b575bcb8/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sim_group_fsm.erl
Type: text/x-erlang
Size: 2329 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120621/b575bcb8/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.erl
Type: text/x-erlang
Size: 576 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120621/b575bcb8/attachment-0002.bin>


More information about the erlang-questions mailing list