[erlang-questions] +secio emulator flag

Lukas Larsson <>
Mon Sep 11 15:32:18 CEST 2017


On Thu, Aug 31, 2017 at 10:07 AM, Mikael Karlsson <>

> I noticed that the secio emulator flag (scheduler eager check for io)
> default value has changed from false to true since ERTS 7.0. Could someone
> explain what this means in practice, I do not quite understand the line:
> "This, however, also implies that execution of outstanding I/O operation is
> not prioritized to the same extent as when false is passed."

The eager check io flag instructs the emulator when it should check for new
I/O events (internally called check_io)  in the fds that it is currently
interested in.

Without secio, the schedulers will first finish with all work generated
from the previous check_io. If a lot of I/O events where triggered by the
check_io, ports may be temporarily prioritized higher than processes in
order to be able to do the next check_io sooner.

With secio, the next check_io can be done before all events of the previous
check_io are consumed. When this feature is enabled, the temporary higher
prioritization of ports is removed. This is the change in priority that the
documentation is trying to explain.

> Is there any special cases where you would prefer to still have it set to
> false.

I see no reason to not have secio enabled.


(sorry for the late reply, I meant to reply to this before but forgot)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170911/ea4c95eb/attachment.html>

More information about the erlang-questions mailing list