static void c_api_register_timed(const char *filename, void(*callback)(void), int interval_seconds) { char *plugin_name = _c_plugin_name(filename); log_debug("Register timed for %s", plugin_name); TimedWrapper *wrapper = malloc(sizeof(TimedWrapper)); wrapper->func = callback; api_register_timed(plugin_name, wrapper, interval_seconds, c_timed_callback, free); free(plugin_name); }
static PyObject * python_api_register_timed(PyObject *self, PyObject *args) { PyObject *p_callback = NULL; int interval_seconds = 0; if (!PyArg_ParseTuple(args, "Oi", &p_callback, &interval_seconds)) { Py_RETURN_NONE; } char *plugin_name = _python_plugin_name(); log_debug("Register timed for %s", plugin_name); if (p_callback && PyCallable_Check(p_callback)) { allow_python_threads(); api_register_timed(plugin_name, p_callback, interval_seconds, python_timed_callback, NULL); disable_python_threads(); } free(plugin_name); Py_RETURN_NONE; }