Adam Olsen <rha...@gmail.com> added the comment:

Converting to/from sig_atomic_t could have a compile time check on currently 
supported platforms and isn't buggy for them.  For platforms with a different 
size you could do a runtime check, only allowing a fd in the range of 0-254 
(with 255 reserved); that could sometimes fail, yes, but at least it's 
explicit, easily understood failure.  Just using int would fail in undefined 
ways down the road, likely writing to a random fd instead (corrupting whatever 
it was doing), with no way to trace it back.

Unpacking the int would mean having one sig_atomic_t for 'invalid', using that 
instead of INVALID_FD, plus an array of sig_atomic_t for the fd itself.  Every 
time you want to change the fd you first set the 'invalid' flag, then the 
individual bytes, then clear 'invalid'.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue1583>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to