Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 3b1cc8d in mainline for uspace/lib/c/include/fibril.h


Ignore:
Timestamp:
2018-06-14T19:19:51Z (3 years ago)
Author:
GitHub <noreply@…>
Branches:
master
Children:
e6bab27b
Parents:
587478b
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-06-14 19:19:51)
git-committer:
GitHub <noreply@…> (2018-06-14 19:19:51)
Message:

Add notification queue to the async framework. (#40)

Instead of running notification handlers in the same fibril that received it,
forcing us to allocate a new fibril when the handler blocks, we instead queue
the notifications, and allow an arbitrary but fixed number of dedicated fibrils
handle them.

Although a service can increase the number of handler fibrils to reduce latency,
there are now no dynamic allocations due to received notifications.
When the same notification is received again while the older instance is still
in queue, the new notification overwrites the old and increments a counter
of received notifications.

The counter is currently unused, because passing it to the handler would
require extensive changes to user code, but it should be straightforward
to make use of it should the need arise.

File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.