Print this page
OS-6363 system went to dark side of moon for ~467 seconds OS-6404 ARC reclaim should throttle its calls to arc_kmem_reap_now() Reviewed by: Bryan Cantrill <bryan@joyent.com> Reviewed by: Dan McDonald <danmcd@joyent.com>
*** 24,33 ****
--- 24,34 ----
*/
/*
* Copyright 2015 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2017 by Delphix. All rights reserved.
+ * Copyright (c) 2017, Joyent, Inc.
*/
/*
* Kernel task queues: general-purpose asynchronous task scheduling.
*
*** 1317,1326 ****
--- 1318,1343 ----
TQ_ENQUEUE(tq, tqe, func, arg);
}
mutex_exit(&tq->tq_lock);
}
+ /*
+ * Allow our caller to ask if there are tasks pending on the queue.
+ */
+ boolean_t
+ taskq_empty(taskq_t *tq)
+ {
+ boolean_t rv;
+
+ ASSERT3P(tq, !=, curthread->t_taskq);
+ 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);
+ }
+
/*
* Wait for all pending tasks to complete.
* Calling taskq_wait from a task will cause deadlock.
*/
void