From 3c36d76be739b6975fac4e6adee3b91002056db1 Mon Sep 17 00:00:00 2001 From: "Anna (navi) Figueiredo Gomes" Date: Sun, 9 Jul 2023 15:39:51 -0300 Subject: server.c: a basic multithreaded server to handle connections Signed-off-by: Anna (navi) Figueiredo Gomes --- include/server.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'include/server.h') diff --git a/include/server.h b/include/server.h index e59c38d..238946a 100644 --- a/include/server.h +++ b/include/server.h @@ -1,6 +1,38 @@ #ifndef _SERVER_H_ #define _SERVER_H_ +#include +#include +#include +#include "http.h" +#define THREAD_POOL_NUM 12 +#define MAX_FD_QUEUE 512 + +struct fd_queue { + int queue[512]; + ssize_t front; + ssize_t back; + size_t count; +}; + +struct thread_data { + struct fd_queue queue; + pthread_mutex_t lock; + pthread_cond_t cond; + struct http *http; +}; + +struct server { + int server_fd; + struct sockaddr_in addr; + int addrlen; + pthread_t *pool; + size_t thread_pool_size; + struct thread_data data; +}; + +struct server *server_init(struct http *http); +void server_poll(struct server *server); #endif -- cgit v1.2.3