On 5/28/14 6:22 AM, Lakshmipathi.G wrote:
Hi -
I have C-Python api like below. It works fine, but the problem is
while invoking this method
from python script say
#cat script.py
<snip>
offset=0
size=4
write_object(offset,size)
</snip>
This calls write_this_c() C api and returns quickly to next printf statement.
But the return call (Py_RETURN_NONE) takes something like 4-6 seconds.
-----
static
PyMethodDef xyz_methods[] = {
{"write_object", write_object, METH_VARARGS,"write some stuff "},
{NULL, NULL, 0, NULL}
};
----
static PyObject *
write_object(PyObject *self, PyObject *args)
{
int offset, size;
if (!PyArg_ParseTuple(args,"ii", &offset, &size))
Py_RETURN_NONE;
printf("before call");
write_this_c(offset, size);
printf("after call");
Py_RETURN_NONE; ##delay happens here
}
How to avoid this delay time? Thanks for any help/pointers!
It can't be as simple as the Py_RETURN_NONE taking 4-6 seconds: hundreds
of built-in functions in Python are coded exactly this way, and they
don't have a delay on return. Something else is going on.
How did you determine that it was the return that was taking the time?
----
----
Cheers,
Lakshmipathi.G
FOSS Programmer.
www.giis.co.in
--
Ned Batchelder, http://nedbatchelder.com
--
https://mail.python.org/mailman/listinfo/python-list