1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#ifndef _NXT_WORK_QUEUE_H_INCLUDED_ 8#define _NXT_WORK_QUEUE_H_INCLUDED_ 9 10 11typedef struct nxt_work_s nxt_work_t; 12 13struct nxt_task_s { 14 nxt_thread_t *thread; 15 nxt_log_t *log; 16 uint32_t ident; 17 nxt_work_t *next_work; 18
| 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#ifndef _NXT_WORK_QUEUE_H_INCLUDED_ 8#define _NXT_WORK_QUEUE_H_INCLUDED_ 9 10 11typedef struct nxt_work_s nxt_work_t; 12 13struct nxt_task_s { 14 nxt_thread_t *thread; 15 nxt_log_t *log; 16 uint32_t ident; 17 nxt_work_t *next_work; 18
|
19 /* TODO: exception_handler, prev/next task, subtasks. */
| 19 /* TODO: exception_handler, prev/next task, subtasks. */
|
20}; 21 22 23#define nxt_task_next_ident() \
| 20}; 21 22 23#define nxt_task_next_ident() \
|
24 ((uint32_t) nxt_atomic_fetch_add(&nxt_task_ident, 1) & 0x3FFFFFFF)
| 24 ((uint32_t) nxt_atomic_fetch_add(&nxt_task_ident, 1) & 0x3FFFFFFF)
|
25 26 27/* 28 * A work handler with just the obj and data arguments instead 29 * of pointer to a possibly large a work struct allows to call 30 * the handler not only via a work queue but also directly. 31 * The only obj argument is enough for the most cases except the 32 * source filters, so the data argument has been introduced and
--- 96 unchanged lines hidden --- | 25 26 27/* 28 * A work handler with just the obj and data arguments instead 29 * of pointer to a possibly large a work struct allows to call 30 * the handler not only via a work queue but also directly. 31 * The only obj argument is enough for the most cases except the 32 * source filters, so the data argument has been introduced and
--- 96 unchanged lines hidden --- |