first attempt in implementing per-core harakiri

This commit is contained in:
Unbit
2014-06-23 12:37:22 +02:00
parent 782171866a
commit 2e14da983a
19 changed files with 89 additions and 62 deletions
+2 -1
View File
@@ -888,12 +888,13 @@ PyObject *py_uwsgi_log(PyObject * self, PyObject * args) {
}
PyObject *py_uwsgi_set_user_harakiri(PyObject * self, PyObject * args) {
struct wsgi_request *wsgi_req = py_current_wsgi_req();
int sec = 0;
if (!PyArg_ParseTuple(args, "i:set_user_harakiri", &sec)) {
return NULL;
}
set_user_harakiri(sec);
set_user_harakiri(wsgi_req, sec);
Py_INCREF(Py_None);
return Py_None;
+2 -2
View File
@@ -442,8 +442,8 @@ void uwsgi_after_request_wsgi(struct wsgi_request *wsgi_req) {
if (up.after_req_hook) {
if (uwsgi.harakiri_no_arh) {
// leave harakiri mode
if (uwsgi.workers[uwsgi.mywid].harakiri > 0)
set_harakiri(0);
if (uwsgi.workers[uwsgi.mywid].cores[wsgi_req->async_id].harakiri > 0)
set_harakiri(wsgi_req, 0);
}
UWSGI_GET_GIL
PyObject *arh = python_call(up.after_req_hook, up.after_req_hook_args, 0, NULL);