~ubuntu-branches/ubuntu/saucy/uwsgi/saucy

« back to all changes in this revision

Viewing changes to plugins/python/web3_subhandler.c

  • Committer: Package Import Robot
  • Author(s): Janos Guljas
  • Date: 2012-04-30 17:35:22 UTC
  • mfrom: (1.1.7)
  • Revision ID: package-import@ubuntu.com-20120430173522-qucwu1au3s9bflhb
Tags: 1.2+dfsg-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
134
134
int uwsgi_response_subhandler_web3(struct wsgi_request *wsgi_req) {
135
135
 
136
136
        PyObject *pychunk;
137
 
        ssize_t wsize;
138
137
 
139
138
        // ok its a yield
140
139
        if (!wsgi_req->async_placeholder) {
168
167
                        Py_DECREF(spit_args);
169
168
 
170
169
                        if (PyString_Check((PyObject *)wsgi_req->async_placeholder)) {
171
 
                                if ((wsize = wsgi_req->socket->proto_write(wsgi_req, PyString_AsString(wsgi_req->async_placeholder), PyString_Size(wsgi_req->async_placeholder))) < 0) {
172
 
                                        uwsgi_error("write()");
173
 
                                        goto clear;
 
170
                                char *content = PyString_AsString(wsgi_req->async_placeholder);
 
171
                                size_t content_len = PyString_Size(wsgi_req->async_placeholder);
 
172
                                UWSGI_RELEASE_GIL
 
173
                                wsgi_req->response_size += wsgi_req->socket->proto_write(wsgi_req, content, content_len);
 
174
                                UWSGI_GET_GIL
 
175
                                uwsgi_py_check_write_errors {
 
176
                                        uwsgi_py_write_exception(wsgi_req);
174
177
                                }
175
 
                                wsgi_req->response_size += wsize;
176
178
                                goto clear;
177
179
                        }
178
180
 
208
210
 
209
211
 
210
212
        if (PyString_Check(pychunk)) {
211
 
                if ((wsize = wsgi_req->socket->proto_write(wsgi_req,  PyString_AsString(pychunk), PyString_Size(pychunk))) < 0) {
212
 
                        uwsgi_error("write()");
 
213
                char *content = PyString_AsString(pychunk);
 
214
                size_t content_len = PyString_Size(pychunk);
 
215
                UWSGI_RELEASE_GIL
 
216
                wsgi_req->response_size += wsgi_req->socket->proto_write(wsgi_req, content, content_len);
 
217
                UWSGI_GET_GIL
 
218
                uwsgi_py_check_write_errors {
 
219
                        uwsgi_py_write_exception(wsgi_req);
213
220
                        Py_DECREF(pychunk);
214
221
                        goto clear;
215
222
                }
216
 
                wsgi_req->response_size += wsize;
217
223
        }
218
224
 
219
225