On 4/12/2013 10:51 PM, Steven D'Aprano wrote:
> And two examples from asm-generic/errno.h:
> 
> #define EWOULDBLOCK     EAGAIN  /* Operation would block */
> #define EDEADLOCK       EDEADLK
> 

That's actually even better of an example than you may have realized
because historically EWOULDBLOCK != EAGAIN[1]. So, there very well may
need to exist such code as:

if <some hairy platform>:
    _EAGAIN = <X>
    _EWOULDBLOCK = <Y>
else:
    _EAGAIN = _EWOULDBLOCK = <X>

class Errno(Enum):
    EAGAIN = _EAGAIN
    EWOULDBLOCK = _EWOULDBLOCK

I don't think it's all that uncommon that enum values that represent
states of a system get merged or renamed over time, and this one is a
great example of that.

[1]
http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/Error-Codes.html#index-EAGAIN-97

-- 
Scott Dial
sc...@scottdial.com
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to