Deleted
Added
nxt_conn_close.c (53:0b10a73d4993) | nxt_conn_close.c (62:5e1efcc7b740) |
---|---|
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 9 10static void nxt_conn_shutdown_handler(nxt_task_t *task, void *obj, void *data); 11static void nxt_conn_close_handler(nxt_task_t *task, void *obj, void *data); 12static void nxt_conn_close_timer_handler(nxt_task_t *task, void *obj, 13 void *data); 14static void nxt_conn_close_error_ignore(nxt_task_t *task, void *obj, 15 void *data); 16 17 18void | 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 9 10static void nxt_conn_shutdown_handler(nxt_task_t *task, void *obj, void *data); 11static void nxt_conn_close_handler(nxt_task_t *task, void *obj, void *data); 12static void nxt_conn_close_timer_handler(nxt_task_t *task, void *obj, 13 void *data); 14static void nxt_conn_close_error_ignore(nxt_task_t *task, void *obj, 15 void *data); 16 17 18void |
19nxt_event_conn_close(nxt_event_engine_t *engine, nxt_event_conn_t *c) | 19nxt_conn_close(nxt_event_engine_t *engine, nxt_conn_t *c) |
20{ 21 int ret; 22 socklen_t len; 23 struct linger linger; 24 nxt_work_queue_t *wq; 25 nxt_work_handler_t handler; 26 27 nxt_debug(c->socket.task, "conn close fd:%d, to:%d", --- 36 unchanged lines hidden (view full) --- 64 65 nxt_work_queue_add(wq, handler, c->socket.task, c, engine); 66} 67 68 69static void 70nxt_conn_shutdown_handler(nxt_task_t *task, void *obj, void *data) 71{ | 20{ 21 int ret; 22 socklen_t len; 23 struct linger linger; 24 nxt_work_queue_t *wq; 25 nxt_work_handler_t handler; 26 27 nxt_debug(c->socket.task, "conn close fd:%d, to:%d", --- 36 unchanged lines hidden (view full) --- 64 65 nxt_work_queue_add(wq, handler, c->socket.task, c, engine); 66} 67 68 69static void 70nxt_conn_shutdown_handler(nxt_task_t *task, void *obj, void *data) 71{ |
72 nxt_event_conn_t *c; | 72 nxt_conn_t *c; |
73 nxt_event_engine_t *engine; 74 75 c = obj; 76 engine = data; 77 78 nxt_debug(task, "conn shutdown handler fd:%d", c->socket.fd); 79 80 c->socket.shutdown = 1; --- 4 unchanged lines hidden (view full) --- 85 task, c, engine); 86} 87 88 89static void 90nxt_conn_close_handler(nxt_task_t *task, void *obj, void *data) 91{ 92 nxt_uint_t events_pending, timers_pending; | 73 nxt_event_engine_t *engine; 74 75 c = obj; 76 engine = data; 77 78 nxt_debug(task, "conn shutdown handler fd:%d", c->socket.fd); 79 80 c->socket.shutdown = 1; --- 4 unchanged lines hidden (view full) --- 85 task, c, engine); 86} 87 88 89static void 90nxt_conn_close_handler(nxt_task_t *task, void *obj, void *data) 91{ 92 nxt_uint_t events_pending, timers_pending; |
93 nxt_event_conn_t *c; | 93 nxt_conn_t *c; |
94 nxt_event_engine_t *engine; 95 96 c = obj; 97 engine = data; 98 99 nxt_debug(task, "conn close handler fd:%d", c->socket.fd); 100 101 /* --- 25 unchanged lines hidden (view full) --- 127 128 nxt_timer_add(engine, &c->write_timer, 0); 129} 130 131 132static void 133nxt_conn_close_timer_handler(nxt_task_t *task, void *obj, void *data) 134{ | 94 nxt_event_engine_t *engine; 95 96 c = obj; 97 engine = data; 98 99 nxt_debug(task, "conn close handler fd:%d", c->socket.fd); 100 101 /* --- 25 unchanged lines hidden (view full) --- 127 128 nxt_timer_add(engine, &c->write_timer, 0); 129} 130 131 132static void 133nxt_conn_close_timer_handler(nxt_task_t *task, void *obj, void *data) 134{ |
135 nxt_timer_t *timer; 136 nxt_event_conn_t *c; | 135 nxt_conn_t *c; 136 nxt_timer_t *timer; |
137 138 timer = obj; 139 | 137 138 timer = obj; 139 |
140 c = nxt_event_write_timer_conn(timer); | 140 c = nxt_write_timer_conn(timer); |
141 142 nxt_debug(task, "conn close timer handler fd:%d", c->socket.fd); 143 144 if (c->socket.fd != -1) { 145 nxt_socket_close(task, c->socket.fd); 146 c->socket.fd = -1; 147 } 148 149 nxt_work_queue_add(&task->thread->engine->fast_work_queue, 150 c->write_state->ready_handler, 151 task, c, c->socket.data); 152} 153 154 155static void 156nxt_conn_close_error_ignore(nxt_task_t *task, void *obj, void *data) 157{ 158 nxt_debug(task, "conn close error ignore"); 159} | 141 142 nxt_debug(task, "conn close timer handler fd:%d", c->socket.fd); 143 144 if (c->socket.fd != -1) { 145 nxt_socket_close(task, c->socket.fd); 146 c->socket.fd = -1; 147 } 148 149 nxt_work_queue_add(&task->thread->engine->fast_work_queue, 150 c->write_state->ready_handler, 151 task, c, c->socket.data); 152} 153 154 155static void 156nxt_conn_close_error_ignore(nxt_task_t *task, void *obj, void *data) 157{ 158 nxt_debug(task, "conn close error ignore"); 159} |