В моем коде Python есть странные ошибки, и мне интересно, может ли это быть вызвано небезопасным расширением C потока.Можно ли было бы использовать некоторые возможности Python, такие как «блокировка», для решения этой проблемы расширения C?И как я могу это реализовать?
[править 1] Вот как выглядит мой код:
import CextensionPackage as cext
try:
(output) = cext.extension_function(inputs)
except:
pass
[править 3] Пакет init .py файл выглядиткак:
from c_ext import functionx
def extension_function( ... )
...
outputs = functionx( ... )
Тогда расширение C_ext.c выглядит так:
#include <Python.h>
#include <cext.h>
static PyObject *functionx(PyObject *self, PyObject *args)
{
char *string;
int stringsize;
if (!PyArg_ParseTuple(args, "s#", &string, &stringsize))
return NULL;
outputs = thread_unsafe_C_function(string);
[править 2] По сути, я хотел бы вызвать функцию cext.extension_function или thread_unsafe_C_function (ивсе функции, которые он вызывает в библиотеке расширений C) для выполнения в одном потоке.Я думаю, что это решило бы мою проблему, но как я могу это сделать?Спасибо за вашу помощь.