1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_FIBER_H_INCLUDED_
8#define _NXT_FIBER_H_INCLUDED_

--- 13 unchanged lines hidden (view full) ---

22 jmp_buf jmp;
23 nxt_fid_t fid;
24 nxt_fiber_start_t start;
25 void *data;
26 char *stack;
27 size_t stack_size;
28 nxt_err_t err;
29
30 nxt_task_t task;
31
32 nxt_fiber_main_t *main;
33 nxt_fiber_t *next;
34
35 nxt_event_timer_t timer;
36};
37
38
39struct nxt_fiber_main_s {
40 nxt_fiber_t fiber;
41 nxt_fiber_t *idle;
42 nxt_event_engine_t *engine;
43 size_t stack_size;
44 nxt_fid_t fid;
45};
46
47
48nxt_fiber_main_t *nxt_fiber_main_create(nxt_event_engine_t *engine);
49nxt_int_t nxt_fiber_create(nxt_fiber_start_t start, void *data, size_t stack);
47void nxt_fiber_yield(void);
48void nxt_fiber_sleep(nxt_msec_t timeout);
49void nxt_fiber_wait(void);
50void nxt_fiber_exit(nxt_fiber_t *next, void *data);
50void nxt_fiber_yield(nxt_task_t *task);
51void nxt_fiber_sleep(nxt_task_t *task, nxt_msec_t timeout);
52void nxt_fiber_wait(nxt_task_t *task);
53void nxt_fiber_exit(nxt_task_t *task, nxt_fiber_t *next, void *data);
54NXT_EXPORT nxt_fiber_t *nxt_fiber_self(nxt_thread_t *thr);
55
56
57#endif /* _NXT_FIBER_H_INCLUDED_ */