[erlang-patches] Fix io:xxxx(self()) no return

Stefan Zegenhagen <>
Mon Jun 3 11:17:06 CEST 2013

Dear Eric,

> here is a patch that fix the bug I found.
> git fetch https://github.com/crownedgrouse/otp.git
> fix_io_noreturn_with_self_pid

I would like to note that there might be cases where

group_leader() =:= self()

In that case, your patch would cause an infinite loop.

Please note that the pid passed to io:xxx() should be the pid of an I/O
server that speaks the I/O protocol. The io:xxx() functions are not
meant to be passed *ANY* pid.

It surely is bad to have a process lock up easily just by calling
io:xxx(self(), ...), but I'd rather prefer to return {error, enotsup} in
that case. The caller should probably do the call to group_leader() if
it needs to.

Kind regards,

Dr. Stefan Zegenhagen

arcutronix GmbH
Garbsener Landstr. 10
30419 Hannover

Tel:   +49 511 277-2734
Fax:   +49 511 277-2709
Web:   www.arcutronix.com

*Synchronize the Ethernet*

General Managers: Dipl. Ing. Juergen Schroeder, Dr. Josef Gfrerer -
Legal Form: GmbH, Registered office: Hannover, HRB 202442, Amtsgericht
Hannover; Ust-Id: DE257551767.

Please consider the environment before printing this message.

More information about the erlang-patches mailing list