From 43037731b095fb6e315aefe3c4f8dbaca8750552 Mon Sep 17 00:00:00 2001 From: matyhtf Date: Tue, 25 Nov 2014 12:06:55 +0800 Subject: [PATCH] Update create buffer_input always. --- src/network/Worker.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/network/Worker.c b/src/network/Worker.c index a6be4da7148..a3e52cfe66b 100644 --- a/src/network/Worker.c +++ b/src/network/Worker.c @@ -300,28 +300,35 @@ int swWorker_loop(swFactory *factory, int worker_id) //worker_id SwooleWG.id = worker_id; -#ifndef SW_USE_RINGBUFFER int i; - //for open_check_eof and open_check_length + + SwooleWG.buffer_input = sw_malloc(sizeof(swString*) * serv->reactor_num); + + if (SwooleWG.buffer_input == NULL) + { + swError("malloc for SwooleWG.buffer_input failed."); + return SW_ERR; + } + + int buffer_input_size; if (serv->open_eof_check || serv->open_length_check || serv->open_http_protocol) { - SwooleWG.buffer_input = sw_malloc(sizeof(swString*) * serv->reactor_num); - if (SwooleWG.buffer_input == NULL) + buffer_input_size = serv->package_max_length; + } + else + { + buffer_input_size = SW_BUFFER_SIZE_BIG; + } + + for (i = 0; i < serv->reactor_num; i++) + { + SwooleWG.buffer_input[i] = swString_new(buffer_input_size); + if (SwooleWG.buffer_input[i] == NULL) { - swError("malloc for SwooleWG.buffer_input failed."); + swError("buffer_input init failed."); return SW_ERR; } - for (i = 0; i < serv->reactor_num; i++) - { - SwooleWG.buffer_input[i] = swString_new(serv->buffer_input_size); - if (SwooleWG.buffer_input[i] == NULL) - { - swError("buffer_input init failed."); - return SW_ERR; - } - } } -#endif if (serv->ipc_mode == SW_IPC_MSGQUEUE) {