[erlang-questions] gproc Help
Andrew Berman
rexxe98@REDACTED
Fri Jun 22 23:33:27 CEST 2012
Yes, but how do I have my new process subscribe to it?
Thanks,
Andrew
On Fri, Jun 22, 2012 at 2:26 PM, Bob Ippolito <bob@REDACTED> wrote:
> On Fri, Jun 22, 2012 at 5:19 PM, Andrew Berman <rexxe98@REDACTED> wrote:
>
>> I'm trying to use gproc as a very basic pub/sub. Here is example code I
>> have (very basic):
>>
>> -module(test).
>>
>> -compile([export_all]).
>>
>> new() ->
>> Pid = spawn_link(?MODULE, apply, []),
>> gproc_ps:subscribe(l, test),
>> Pid.
>>
>> apply() ->
>> receive
>> {gproc_ps_event, test, Msg} -> io:put_chars(Msg),
>> apply()
>> end.
>>
>> publish() ->
>> gproc_ps:publish(l, test, "My test message").
>>
>> In the shell I then do:
>>
>> Pid = test:new().
>> test:publish().
>>
>> My expectation was that I would get an output of "My test message", but
>> all I get is {gproc_ps_event,test,"My test message"}. When I do a flush(),
>> I do get the Shell got {gproc_ps_event,test,"My test message"}. What am I
>> doing wrong? I obviously don't understand something, can someone explain
>> how to get this simple example to work. I know I can do Pid ! {....} in
>> this example, but I'm trying to play with gproc.
>>
>> Thanks for any help!
>>
>
> You're subscribing to 'test' from the shell process, not from Pid, so that
> is why the shell is receiving the message.
>
> -bob
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120622/6c7b5e85/attachment.htm>
More information about the erlang-questions
mailing list