[erlang-questions] jinterface (was: otp.net)
Paul Guyot
pguyot@REDACTED
Sat Oct 4 15:14:09 CEST 2008
> Date: Sat, 04 Oct 2008 01:32:55 -0400
> From: Serge Aleynikov <saleyn@REDACTED>
> Subject: Re: [erlang-questions] jinterface (was: otp.net)
>
> I tried a similar test using jinterface to see if it's possible to
> monitor processes running on a Java node and ran into the same
> failure.
>
> Can anyone explain what's wrong?
>
> (server@REDACTED)10> {test, client@REDACTED} ! {self(), hello}.
> {<0.45.0>,hello}
> (server@REDACTED)11> f(), {Pid, _} = receive M -> M end.
> {<5979.1.0>,hello}
> (server@REDACTED)12> erlang:monitor(process, Pid).
> ** exception error: bad argument
> in function erlang:monitor/2
> called as erlang:monitor(process,<5979.1.0>)
I've seen a comment in stdlib/gen.erl, at line 196, that suggests
that Java and C nodes are featureweak, and processes in such nodes
cannot be monitored. Instead, you have to monitor the whole node with
monitor_node/2. This makes sense because the OTP ei (C library) or
jinterface do not monitor "processes". Indeed, there is only one pid
per node, which is the node's pseudo-pid (even if technically, each
connection can receive messages). I guess you can draw from the code
in gen.erl if you need to monitor either an erlang process or your
java process, or just monitor the node if you only need to monitor
java processes.
Regards,
Paul
More information about the erlang-questions
mailing list