svn commit: r211284 - head/sys/kern
Pawel Jakub Dawidek
pjd at FreeBSD.org
Fri Aug 13 19:20:35 UTC 2010
Author: pjd
Date: Fri Aug 13 19:20:35 2010
New Revision: 211284
URL: http://svn.freebsd.org/changeset/base/211284
Log:
Simplify taskqueue_drain() by using proved macros.
Modified:
head/sys/kern/subr_taskqueue.c
Modified: head/sys/kern/subr_taskqueue.c
==============================================================================
--- head/sys/kern/subr_taskqueue.c Fri Aug 13 18:17:32 2010 (r211283)
+++ head/sys/kern/subr_taskqueue.c Fri Aug 13 19:20:35 2010 (r211284)
@@ -248,23 +248,16 @@ taskqueue_run(struct taskqueue *queue, s
void
taskqueue_drain(struct taskqueue *queue, struct task *task)
{
- if (queue->tq_spin) { /* XXX */
- mtx_lock_spin(&queue->tq_mutex);
- while (task->ta_pending != 0 ||
- (task->ta_running != NULL && task == *task->ta_running)) {
- msleep_spin(task, &queue->tq_mutex, "-", 0);
- }
- mtx_unlock_spin(&queue->tq_mutex);
- } else {
+
+ if (!queue->tq_spin)
WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, __func__);
- mtx_lock(&queue->tq_mutex);
- while (task->ta_pending != 0 ||
- (task->ta_running != NULL && task == *task->ta_running)) {
- msleep(task, &queue->tq_mutex, PWAIT, "-", 0);
- }
- mtx_unlock(&queue->tq_mutex);
+ TQ_LOCK(queue);
+ while (task->ta_pending != 0 ||
+ (task->ta_running != NULL && task == *task->ta_running)) {
+ TQ_SLEEP(queue, task, &queue->tq_mutex, PWAIT, "-", 0);
}
+ TQ_UNLOCK(queue);
}
static void
More information about the svn-src-head
mailing list