John Nagle wrote:
Philip Semanchuk wrote:
I'm writing a Python extension in C that wraps a function which takes
a void * as a parameter. (The function is shmat() which attaches a
chunk of shared memory to the process at the address supplied by the
caller.) I would like to expose this function to Python, but I don't
know how to define the interface.
Use message passing, not shared memory. CPython is so slow that you'll
never notice any performance gain from using shared memory.
Also, if you're asking this question, you probably don't know enough
to keep out of trouble in this area. You need to thoroughly understand
concurrency, locking, shared memory locking, the Python Global Interpreter
Lock, Python memory management, and the implications of the interactions
between all of them. Otherwise you'll get race conditions, crashes within
the Python system, lockups, and/or terrible performance.
And none of the usual debugging tools for Python will help you.
I'm pretty sure the OP is fairly aware of the issues involved in shared memory
and the rest.
http://semanchuk.com/philip/posix_ipc/
He's asking about a detail of Python C API for parsing function arguments. His
ignorance in that area doesn't entail ignorance in other matters. You're being
abusive without cause.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
--
http://mail.python.org/mailman/listinfo/python-list