I need to call gettid from Cython. Accordingly to its man page, I should use the syscall function. I’m running Linux.
I can easily get the gettid function number:
cdef extern from "sys/syscall.h":
cdef int __NR_gettid
But I cannot find how to import, or better cimport, syscall.
Any ideas?
Thanks.
Advertisement
Answer
You can look up in the cython’s github repository, how those includes are done best, for example: stdio.h.
Applying this leads to:
%%cython
cdef extern from "<sys/syscall.h>" nogil:
int __NR_gettid
long syscall(long number, ...)
def gettid():
return syscall(__NR_gettid)
And now gettid() yields:
>>> gettid() 7231