Lines Matching refs:ts
155 static void sock_server(struct sock_server *ts, in sock_server() argument
158 struct server_state srvst = { .cb = ts->cb }; in sock_server()
163 sock_server_lock(ts); in sock_server()
165 for (n = 0; n < ts->num_binds; n++) { in sock_server()
166 if (!server_add_state(&srvst, cb, ts->bind + n, in sock_server()
167 ts->bind[n].fd, POLLIN)) in sock_server()
172 ts->quit_fd, POLLIN)) in sock_server()
176 sock_server_unlock(ts); in sock_server()
183 sock_server_lock(ts); in sock_server()
200 ts->error = true; in sock_server()
212 if (read(ts->quit_fd, &b, 1) != 1) in sock_server()
213 ts->error = true; in sock_server()
215 sock_server_unlock(ts); in sock_server()
230 static void sock_server_add_fd(struct sock_server *ts, struct addrinfo *ai) in sock_server_add_fd() argument
269 p = realloc(ts->bind, sizeof(*p) * (ts->num_binds + 1)); in sock_server_add_fd()
273 ts->bind = p; in sock_server_add_fd()
274 p[ts->num_binds] = serv; in sock_server_add_fd()
275 ts->num_binds++; in sock_server_add_fd()
282 void sock_server_uninit(struct sock_server *ts) in sock_server_uninit() argument
287 if (ts->stop_fd != -1) { in sock_server_uninit()
288 if (close(ts->stop_fd)) in sock_server_uninit()
289 warn("sock_server_uninit: close(%d)", ts->stop_fd); in sock_server_uninit()
290 ts->stop_fd = -1; in sock_server_uninit()
291 e = pthread_join(ts->thr, NULL); in sock_server_uninit()
297 e = pthread_mutex_destroy(&ts->mu); in sock_server_uninit()
302 for (n = 0; n < ts->num_binds; n++) in sock_server_uninit()
303 if (close(ts->bind[n].fd)) in sock_server_uninit()
304 warn("sock_server_uninit: close(%d)", ts->bind[n].fd); in sock_server_uninit()
305 free(ts->bind); in sock_server_uninit()
306 if (ts->quit_fd != -1 && close(ts->quit_fd)) in sock_server_uninit()
307 warn("sock_server_uninit: close(%d)", ts->quit_fd); in sock_server_uninit()
308 memset(ts, 0, sizeof(*ts)); in sock_server_uninit()
309 ts->quit_fd = -1; in sock_server_uninit()
310 ts->stop_fd = -1; in sock_server_uninit()
313 static bool sock_server_init(struct sock_server *ts, struct sock_io_cb *cb, in sock_server_init() argument
322 memset(ts, 0, sizeof(*ts)); in sock_server_init()
323 ts->quit_fd = -1; in sock_server_init()
324 ts->stop_fd = -1; in sock_server_init()
325 ts->cb = cb; in sock_server_init()
327 e = pthread_mutex_init(&ts->mu, NULL); in sock_server_init()
341 sock_server_add_fd(ts, ai); in sock_server_init()
345 if (!ts->num_binds) in sock_server_init()
349 sock_server_uninit(ts); in sock_server_init()
353 ts->quit_fd = fd_pair[0]; in sock_server_init()
356 e = pthread_create(&ts->thr, NULL, sock_server_stream, ts); in sock_server_init()
358 e = pthread_create(&ts->thr, NULL, sock_server_dgram, ts); in sock_server_init()
363 sock_server_uninit(ts); in sock_server_init()
367 ts->stop_fd = fd_pair[1]; in sock_server_init()
381 void sock_server_lock(struct sock_server *ts) in sock_server_lock() argument
383 int e = pthread_mutex_lock(&ts->mu); in sock_server_lock()
389 void sock_server_unlock(struct sock_server *ts) in sock_server_unlock() argument
391 int e = pthread_mutex_unlock(&ts->mu); in sock_server_unlock()