On Sat, 31 Dec 2022 at 11:19, William ML Leslie < william.leslie.ttg@gmail.com> wrote:
On Sat, 31 Dec 2022 at 11:15, William ML Leslie <
william.leslie.ttg@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