4 * This file and its contents are supplied under the terms of the
5 * Common Development and Distribution License ("CDDL"), version 1.0.
6 * You may only use this file in accordance with the terms of version
9 * A full copy of the text of the CDDL should have accompanied this
10 * source. A copy of the CDDL is also available via the Internet at
11 * http://www.illumos.org/license/CDDL.
17 * Copyright (c) 2017, 2018 by Delphix. All rights reserved.
23 typedef struct zthr zthr_t
;
24 typedef void (zthr_func_t
)(void *, zthr_t
*);
25 typedef boolean_t (zthr_checkfunc_t
)(void *, zthr_t
*);
27 extern zthr_t
*zthr_create(const char *zthr_name
,
28 zthr_checkfunc_t checkfunc
, zthr_func_t
*func
, void *arg
,
30 extern zthr_t
*zthr_create_timer(const char *zthr_name
,
31 zthr_checkfunc_t
*checkfunc
, zthr_func_t
*func
, void *arg
,
32 hrtime_t nano_wait
, pri_t pri
);
33 extern void zthr_destroy(zthr_t
*t
);
35 extern void zthr_wakeup(zthr_t
*t
);
36 extern void zthr_cancel(zthr_t
*t
);
37 extern void zthr_resume(zthr_t
*t
);
38 extern void zthr_wait_cycle_done(zthr_t
*t
);
40 extern boolean_t
zthr_iscancelled(zthr_t
*t
);
41 extern boolean_t
zthr_iscurthread(zthr_t
*t
);
42 extern boolean_t
zthr_has_waiters(zthr_t
*t
);
44 #endif /* _SYS_ZTHR_H */