[erlang-questions] spawn_link

Thilani Abeysinghe a.thilani@REDACTED
Mon Dec 29 12:16:28 CET 2008


Thanks for quick reply.:)
function connect_to_server method tries to connect to a server, when it
connects sucessfull it returns
{ok,Socket}.
so I want to get that socket and send messages to the server. So here I'm
trieng to save the socket value in
state of gen_server.
regards
Thilani


On Mon, Dec 29, 2008 at 4:40 PM, Chandru <
chandrashekhar.mullaparthi@REDACTED> wrote:

> 2008/12/29 Thilani Abeysinghe <a.thilani@REDACTED>:
> > I have a problem of how to get the return value of a function when
> >
> > spawn_link(Fun) ->pid() is used.
> >
> > Im going to use above function in following manner.
> >
> > init([]) ->
> >
> > ChildPid = erlang:spawn_link(?MODULE, connect_to_server, [Ip,Port, ConId,
> > self(),State]).
> >
> > connect_to_server(Ip, Port, ConId, ParentPid,State) ->
> >   case Result= gen_tcp:connect(Ip, Port,
> >   [binary, {packet, 0}]) of
> >   {ok, Socket} ->
> >            io:format("Socket Received:~w~n",[Socket]),
> >           ok =(catch gen_server:call(g_srv, {add_conn, self(), ConId,
> > Socket})),
> >           NewState = State#state{socket= Socket};
> >   {error, Reason} ->
> >           io:format("connection error host Ip:~w Port: ~w ~w ~n",
> > [Ip,Port,Reason]) ,
> >          connect_to_server(Ip, Port, ConId, ParentPid,State)
> >   end.
> >
> >  I want to get the return value of connect_to_server function. How can I
> do
> > that.
> >
>
> I'm assuming you want to send intermediate results, as
> connect_to_server seems to be part of a process which is long lived.
> In such cases, send a message to the parent process from the spawned
> process.
>
> cheers
> Chandru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20081229/11dd2ff2/attachment.htm>


More information about the erlang-questions mailing list