|
|
| version 1.28.2.4, 2016/08/02 15:18:41 | version 1.29.2.1, 2020/06/25 19:08:42 |
|---|---|
| Line 424 acceptClients(sched_task_t *task) | Line 424 acceptClients(sched_task_t *task) |
| AIT_FREE_VAL(&c->cli_buf); | AIT_FREE_VAL(&c->cli_buf); |
| array_Del(srv->srv_clients, c->cli_id, 42); | array_Del(srv->srv_clients, c->cli_id, 42); |
| goto end; | goto end; |
| } else | } else { |
| fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK); | fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK); |
| fcntl(c->cli_sock, F_SETFD, FD_CLOEXEC); | |
| } | |
| #ifdef TCP_SESSION_TIMEOUT | #ifdef TCP_SESSION_TIMEOUT |
| /* armed timer for close stateless connection */ | /* armed timer for close stateless connection */ |
| Line 1197 flushBLOB(sched_task_t *task) | Line 1199 flushBLOB(sched_task_t *task) |
| e_free(b); | e_free(b); |
| } | } |
| if (!schedSignalSelf(task)) { | if (sigArg) { |
| /* disabled kqueue support in libaitsched */ | /* disabled kqueue support in libaitsched */ |
| struct sigaction sa; | struct sigaction sa; |
| Line 1206 flushBLOB(sched_task_t *task) | Line 1208 flushBLOB(sched_task_t *task) |
| sa.sa_handler = (void (*)(int)) flushBLOB; | sa.sa_handler = (void (*)(int)) flushBLOB; |
| sa.sa_flags = SA_RESTART | SA_RESETHAND; | sa.sa_flags = SA_RESTART | SA_RESETHAND; |
| sigaction(SIGFBLOB, &sa, NULL); | sigaction(SIGFBLOB, &sa, NULL); |
| return NULL; | |
| } else { | |
| schedSignalSelf(task); | |
| taskExit(task, NULL); | |
| } | } |
| taskExit(task, NULL); | |
| } | } |
| static void * | static void * |
| Line 1262 acceptBLOBClients(sched_task_t *task) | Line 1266 acceptBLOBClients(sched_task_t *task) |
| setsockopt(c->cli_sock, IPPROTO_TCP, TCP_NOPUSH, &n, sizeof n); | setsockopt(c->cli_sock, IPPROTO_TCP, TCP_NOPUSH, &n, sizeof n); |
| #endif | #endif |
| fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK); | fcntl(c->cli_sock, F_SETFL, fcntl(c->cli_sock, F_GETFL) | O_NONBLOCK); |
| fcntl(c->cli_sock, F_SETFD, FD_CLOEXEC); | |
| } | } |
| schedRead(TASK_ROOT(task), rxBLOB, c, c->cli_sock, NULL, 0); | schedRead(TASK_ROOT(task), rxBLOB, c, c->cli_sock, NULL, 0); |