summaryrefslogtreecommitdiff
path: root/sys/kern/subr_taskqueue.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2000-10-25 05:19:40 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2000-10-25 05:19:40 +0000
commit8088699f795d34421f429d5539e8e68cbaf3115c (patch)
tree9894f99096605a24f42fc4e18482dead42b189a5 /sys/kern/subr_taskqueue.c
parent650789cb1b390b2ef141e62d03f950d8bec38bd5 (diff)
Notes
Diffstat (limited to 'sys/kern/subr_taskqueue.c')
-rw-r--r--sys/kern/subr_taskqueue.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/subr_taskqueue.c b/sys/kern/subr_taskqueue.c
index 3fa0f05fb50cd..ba25c7f5f6eeb 100644
--- a/sys/kern/subr_taskqueue.c
+++ b/sys/kern/subr_taskqueue.c
@@ -40,6 +40,8 @@ MALLOC_DEFINE(M_TASKQUEUE, "taskqueue", "Task Queues");
static STAILQ_HEAD(taskqueue_list, taskqueue) taskqueue_queues;
+static struct intrhand *taskqueue_ih;
+
struct taskqueue {
STAILQ_ENTRY(taskqueue) tq_link;
STAILQ_HEAD(, task) tq_queue;
@@ -191,14 +193,15 @@ taskqueue_run(struct taskqueue *queue)
static void
taskqueue_swi_enqueue(void *context)
{
- setsofttq();
+ sched_swi(taskqueue_ih, SWI_NOSWITCH);
}
static void
-taskqueue_swi_run(void)
+taskqueue_swi_run(void *dummy)
{
taskqueue_run(taskqueue_swi);
}
TASKQUEUE_DEFINE(swi, taskqueue_swi_enqueue, 0,
- register_swi(SWI_TQ, taskqueue_swi_run));
+ taskqueue_ih = sinthand_add("task queue", NULL,
+ taskqueue_swi_run, NULL, SWI_TQ, 0));