On Sat, 31 Dec 2022 at 11:19, William ML Leslie <
william.leslie....@gmail.com> wrote:

> On Sat, 31 Dec 2022 at 11:15, William ML Leslie <
>> william.leslie....@gmail.com> wrote:
>> Notification objects - like all kernel-implemented objects - complete
>> their operation immediately.
>>
>
> Or maybe put another way - notification objects are always ready to
> respond to your messages, so they do not block.
>
>
I'm still technically wrong without further context, so let me clear up the
two different usages of blocking here:

The "blocking" in NBSend refers to waiting until the receiver can receive
the message.  A non-blocking send does not wait for the receiver to be
ready to receive the message, if the receiver is not ready, it simply
doesn't send the message.

Signals are *always* "non-blocking", in that you can send one, regardless
of what state the thread is in that will receive the Signal.  However, when
you send a Signal, you send a message to the Notification object, which is
always ready to receive your message. So, you don't need to use a
non-blocking system call to do the send.

I hope that helps.

-- 
William ML Leslie
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to