Notification capabilities are used for asynchronous IPC (inter-process communication) between tasks. Two operations are supported: signal and wait. A task calling “wait” will block until the notification is signalled (or will return immediately if the notification was signalled prior to the wait call). A call to “signal” never blocks. A non-blocking wait operation is also available via the nbwait syscall.
If multiple tasks are blocked on a “wait” operation, “signal” wakes up all of them.
Performing a “send” operation against a notification is equivalent to “signal”; all provided parameters and capabilities are ignored. “recv” is, similarly, an alias for “wait”.