[Python-Dev] Support for async read/write

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Wed Oct 20 03:55:20 CEST 2010


On 01:37 am, glyph at twistedmatrix.com wrote:
>
>On Oct 19, 2010, at 8:09 PM, James Y Knight wrote:
>>There's a difference.
>>
>>os._exit is useful. os.open is useful. aio_* are *not* useful. For 
>>anything. If there's anything you think you want to use them for, 
>>you're wrong. It either won't work properly or it will worse 
>>performing than the simpler alternatives.
>
>
>I'd like to echo this sentiment.  This is not about providing a 'safe' 
>wrapper to hide some powerful feature of these APIs: the POSIX aio_* 
>functions are really completely useless.
>
>To quote the relevant standard 
><http://www.opengroup.org/onlinepubs/000095399/basedefs/aio.h.html>:

>APPLICATION USAGE
>
>None.
>
>RATIONALE
>
>None.
>
>FUTURE DIRECTIONS
>
>None.
>
>Not only is the performance usually worse than expected, the behavior 
>of aio_* functions require all kinds of subtle and mysterious 
>coordination with signal handling, which I'm not entirely sure Python 
>would even be able to pull off without some modifications to the signal 
>module.  (And, as Jean-Paul mentioned, if your OS kernel runs out of 
>space in a queue somewhere, completion notifications might just never 
>be delivered at all.)

Just to be clear, James corrected me there.  I thought Jesus was talking 
about the mostly useless Linux AIO APIs, which have the problems I 
described.  He was actually talking about the POSIX AIO APIs, which have 
a different set of problems making them a waste of time.

Jean-Paul


More information about the Python-Dev mailing list