summaryrefslogtreecommitdiff
path: root/usr/src/lib/libfakekernel/common/taskq.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libfakekernel/common/taskq.c')
-rw-r--r--usr/src/lib/libfakekernel/common/taskq.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/usr/src/lib/libfakekernel/common/taskq.c b/usr/src/lib/libfakekernel/common/taskq.c
index a9320024ad..ffaa73fccc 100644
--- a/usr/src/lib/libfakekernel/common/taskq.c
+++ b/usr/src/lib/libfakekernel/common/taskq.c
@@ -25,6 +25,7 @@
/*
* Copyright 2012 Garrett D'Amore <garrett@damore.org>. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright (c) 2017, Joyent, Inc.
*/
#include <sys/taskq_impl.h>
@@ -208,6 +209,18 @@ taskq_dispatch_ent(taskq_t *tq, task_func_t func, void *arg, uint_t flags,
mutex_exit(&tq->tq_lock);
}
+boolean_t
+taskq_empty(taskq_t *tq)
+{
+ boolean_t rv;
+
+ mutex_enter(&tq->tq_lock);
+ rv = (tq->tq_task.tqent_next == &tq->tq_task) && (tq->tq_active == 0);
+ mutex_exit(&tq->tq_lock);
+
+ return (rv);
+}
+
void
taskq_wait(taskq_t *tq)
{