[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Re: Purpose of kqueue_task?
From: Sebastian Huber <sebastian.huber () embedded-brains ! de>
Date: 2013-03-18 8:19:01
Message-ID: 5146CDF5.3070308 () embedded-brains ! de
[Download RAW message or body]
On 03/15/2013 06:19 PM, Ryan Stone wrote:
> On Fri, Mar 15, 2013 at 12:46 PM, Sebastian Huber
> <sebastian.huber@embedded-brains.de
> <mailto:sebastian.huber@embedded-brains.de>> wrote:
>
> Hello,
>
> I want to port the FreeBSD kqueue implementation to another operating
> system (RTEMS in this case) to improve the Erlang support.
>
> I have difficulties to understand the purpose of the kqueue_task. This
> function runs asynchronously. It obtains some locks and wakes up the
> normal kqueue channel if (kq->kq_state & KQ_TASKDRAIN) == KQ_TASKDRAIN.
> This state is only set in kqueue_close(). So most of the time the
> kqueue_task only obtains some locks, clears a flag (KQ_TASKSCHED) and
> releases the locks?
>
>
> You missed the most important thing that it does: it calls KNOTE_LOCKED to wake
> up any waiters sleeping on this event. I suspect that it had to be done in a
> separate task due to lock ordering problems with the kq_global lock.
Oh, I was blind. This KNOTE_LOCKED looked more like an assertion to me.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic