[issue27282] Raise BlockingIOError in os.urandom if kernel is not ready

Nick Coghlan report at bugs.python.org
Thu Jun 9 13:24:13 EDT 2016


Nick Coghlan added the comment:

Quoting http://bugs.python.org/issue27266#msg268043:

The key advantage the BlockingIOError model offers is that it's trivial to build a blocking version as a busy loop around the non-blocking version:

    def urandom_wait_for_entropy(num_bytes):
        while True:
            try:
                return os.urandom(num_bytes)
            except BlockingIOError:
                pass

And if you ignore the problem and just call os.urandom(), you'll almost certainly be fine unless you're working with Linux boot scripts or embedded ARM devices (in which case, this point will be minor compared to the other arcana you're dealing with).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue27282>
_______________________________________


More information about the Python-bugs-list mailing list