int fil_message_type_init(PyObject *module) { PyObject *m; PyGreenlet_Import(); if (PyType_Ready(&_message_type) < 0) return -1; m = fil_create_module("filament.message"); if (m == NULL) return -1; Py_INCREF((PyObject *)&_message_type); if (PyModule_AddObject(m, "Message", (PyObject *)&_message_type) != 0) { Py_DECREF((PyObject *)&_message_type); return -1; } if (PyModule_AddObject(module, "message", m) != 0) { return -1; } Py_INCREF(m); return 0; }
void greenlet_init_apps(void) { if (!ugl.enabled) { return; } PyGreenlet_Import(); ugl.gl = uwsgi_malloc( sizeof(PyGreenlet *) * uwsgi.async ); ugl.main = PyGreenlet_GetCurrent(); ugl.callable = PyCFunction_New(uwsgi_greenlet_request_method, NULL); uwsgi_log("enabled greenlet engine\n"); uwsgi.schedule_to_main = greenlet_schedule_to_main; uwsgi.schedule_to_req = greenlet_schedule_to_req; return; }