summaryrefslogtreecommitdiff
blob: 10bd5189ad6fcb83546c104900cec6df4735bab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--- a/plugins/php/php_plugin.c	2014-10-27 17:23:50.909755436 +0100
+++ b/plugins/php/php_plugin.c	2014-10-27 17:25:24.970534680 +0100
@@ -88,7 +88,7 @@
 	return str_length;
 }
 
-static int sapi_uwsgi_send_headers(sapi_headers_struct *sapi_headers)
+static int sapi_uwsgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
 {
 	sapi_header_struct *h;
 	zend_llist_position pos;
@@ -146,7 +146,7 @@
 }
 
 
-static char *sapi_uwsgi_read_cookies(void)
+static char *sapi_uwsgi_read_cookies(TSRMLS_D)
 {
 	uint16_t len = 0;
 	struct wsgi_request *wsgi_req = (struct wsgi_request *) SG(server_context);
@@ -570,6 +570,10 @@
 	struct uwsgi_string_list *pset = uphp.set;
 	struct uwsgi_string_list *append_config = uphp.append_config;
 
+#ifdef ZTS
+	tsrm_startup(1, 1, 0, NULL);
+#endif
+
 	if (!uphp.sapi_initialized) {
 		sapi_startup(&uwsgi_sapi_module);
 		uphp.sapi_initialized = 1;
@@ -678,6 +682,7 @@
 
 	zend_file_handle file_handle;
 
+	TSRMLS_FETCH(); // fetch the threading state in case PHP is built with threading
 	SG(server_context) = (void *) wsgi_req;
 
 	if (uwsgi_parse_vars(wsgi_req)) {