[erlang-questions] How does Erlang kill port processes?

Albin Stigö <>
Sun Jul 16 22:31:50 CEST 2017


Hi,

Ah ok that should solve it! I read from a Bluetooth socket and wrote to
stdout using blocking io and wasn't reading from stdin at all... That's why
I got confused about how Erlang killed the process. Changed to using poll
and check for POLLHUP on stdin.


Thanks,
Albin

On Jul 16, 2017 19:40, "Ali Sabil" <> wrote:

Hi Albin,

The Erlang runtime doesn't actually kill the port, but just closes the
pipe. You port should then detect an end-of-file on its input pipe.

Best,
Ali

On Sun, Jul 16, 2017 at 6:28 PM, Albin Stigö <> wrote:

> Hello,
>
> I have a program that relies on C API calls to the Linux bluetooth
> stack (bluez) so I wrote a port program for that...
>
> There seems to be a bug in the version of the bluez stack I'm using
> that requires programs to clean up after themselves or the program
> will fail on the next execution (I guess some garbage state in driver
> / hardware).
>
> I have tried to catch SIGPIPE/SIGTERM and check for EPIPE in my port
> but it doesn't seem to work. How does Erlang kill ports? SIGKILL?
>
> Any ideas on how to clean up on exit..? I realise this is very fragile
> but as of now I need to work around this bug...
>
>
> --Albin
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170716/114078f7/attachment.html>


More information about the erlang-questions mailing list