create a task list in the htts service

This commit is contained in:
2023-01-12 00:33:52 +09:00
parent 97133f8c12
commit d9cadf0793
4 changed files with 62 additions and 6 deletions

View File

@@ -72,6 +72,7 @@ struct hio_svc_htts_t
hio_svc_fcgic_t* fcgic;
hio_svc_htts_cli_t cli; /* list head for client list */
hio_svc_htts_rsrc_t task; /* list head for task list */
hio_tmridx_t idle_tmridx;
hio_bch_t* server_name;
@@ -109,4 +110,31 @@ struct hio_svc_httc_t
#define HIO_SVC_HTTS_CLIL_IS_EMPTY(lh) (HIO_SVC_HTTS_CLIL_FIRST_CLI(lh) == (lh))
#define HIO_SVC_HTTS_CLIL_IS_NIL_CLI(lh,cli) ((cli) == (lh))
/* task list */
#define HIO_SVC_HTTS_TASKL_APPEND_TASK(lh,task) do { \
(task)->task_next = (lh); \
(task)->task_prev = (lh)->task_prev; \
(task)->task_prev->task_next = (task); \
(lh)->task_prev = (task); \
} while(0)
#define HIO_SVC_HTTS_TASKL_UNLINK_TASK(task) do { \
(task)->task_prev->task_next = (task)->task_next; \
(task)->task_next->task_prev = (task)->task_prev; \
} while (0)
#define HIO_SVC_HTTS_TASKL_UNLINK_TASK_CLEAN(task) do { \
(task)->task_prev->task_next = (task)->task_next; \
(task)->task_next->task_prev = (task)->task_prev; \
(task)->task_prev = (task); \
(task)->task_next = (task); \
} while (0)
#define HIO_SVC_HTTS_TASKL_INIT(lh) ((lh)->task_next = (lh)->task_prev = lh)
#define HIO_SVC_HTTS_TASKL_FIRST_TASK(lh) ((lh)->task_next)
#define HIO_SVC_HTTS_TASKL_LAST_TASK(lh) ((lh)->task_prev)
#define HIO_SVC_HTTS_TASKL_IS_EMPTY(lh) (HIO_SVC_HTTS_TASKL_FIRST_TASK(lh) == (lh))
#define HIO_SVC_HTTS_TASKL_IS_NIL_TASK(lh,task) ((task) == (lh))
#endif