| 283 | }; |
| 284 | |
| 285 | hstcpsvr_worker::hstcpsvr_worker(const hstcpsvr_worker_arg& arg) |
| 286 | : cshared(*arg.cshared), vshared(*arg.vshared), worker_id(arg.worker_id), |
| 287 | dbctx(cshared.dbptr->create_context(cshared.for_write_flag)), |
| 288 | last_check_time(time(0)), accept_enabled(true), accept_balance(0) |
| 289 | { |
| 290 | #ifdef __linux__ |
| 291 | if (cshared.sockargs.use_epoll) { |
| 292 | epoll_fd.reset(epoll_create(10)); |
| 293 | if (epoll_fd.get() < 0) { |
| 294 | fatal_abort("epoll_create"); |
| 295 | } |
| 296 | epoll_event ev = { }; |
| 297 | ev.events = EPOLLIN; |
| 298 | ev.data.ptr = 0; |
| 299 | if (epoll_ctl(epoll_fd.get(), EPOLL_CTL_ADD, cshared.listen_fd.get(), &ev) |
| 300 | != 0) { |
| 301 | fatal_abort("epoll_ctl EPOLL_CTL_ADD"); |
| 302 | } |
| 303 | events_vec.resize(10240); |
| 304 | } |
| 305 | #endif |
| 306 | accept_balance = cshared.conf.get_int("accept_balance", 0); |
| 307 | } |
| 308 | |
| 309 | namespace { |
| 310 |
nothing calls this directly
no test coverage detected