[Python-Dev] PEP 298

Martin v. Löwis Martin v. Löwis
Sat, 14 Dec 2002 19:52:01 +0100


> It sounds like you want to get your modifiable pointer as a Python integer.
>  Then you want to pass that integer as the last argument of fcntl.  I think
> it would be better if fcntl allowed the last argument to be a modifiable
> buffer instead of just an "int or a string" as the docs indicate.

This is desirable, yes, and a patch is being implemented for that, see #555817. 
However, it is not sufficient: The /dev/poll interface on Solaris requires that
you must pass a structure that contains addresses to some storage.

> BTW, the array object currently has the buffer_info() method which gives
> you that integer.  I don't think this is the right long term solution, but
> it might get you past a short term hump.

Yes, Thomas just explained this to me, as well. I would have never expected it
to be at the array object, instead, I think it rightfully belongs to the buffer
objects. Having it at the buffer object also allows you get addresses of
other locked buffers - it would be unfortunate if we have the locked buffer interface,
but now you must copy string objects to array objects, just to get their address.

This is just as bad as having to copy array objects to string objects right now
to avoid relocations to the buffer.

Regards,
Martin