Age | Commit message (Collapse) | Author |
|
|
|
Instead of combining assertions and checking into single functions,
rework those into pure checking functions usable with assert().
Those functions were introduced because of warnings about unused
functions/variables caused by an earlier implementation of assert().
|
|
Use standard errno codes. This change also adds strerror to string.h.
|
|
|
|
The broadcast implementation is based on an invalid assumption, namely
that the first mutex_unlock call following condition_wait would be invoked
on the same mutex. Fixing this while guarding against the thundering herd
effect requires augmenting mutexes with a pointer to the condition
variable they may be associated with. Since the size of mutexes is
currently more important than broadcast scalability, the implementation
is simplified into one which suffers from the thundering herd effect.
|
|
|
|
The new build system, called xbuild, is a minimalistic kbuild-like
make-based build system, also using kconfig for scalable configurations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This turns assert.h into a standard header.
|
|
Rework so that fast paths occupy the first indentation level, and use
the unlikely macro on the relevant conditions.
|
|
|
|
This option turns all regular mutexes into real-time mutexes.
|
|
|
|
|
|
Using a single header for all types causing inclusion circular
dependencies isn't very elegant and doesn't scale.
|
|
This change was done using astyle, with a few manual editing here and
there.
|
|
These initializers are unnecessary, unused, and cumbersome to maintain.
|
|
This change affects more files than it apparently would at first glance.
This is because circular dependencies can easily be created between the
thread, mutex, condition and spinlock modules. As a result, some of the
types of these modules are now defined in kern/types.h.
|
|
Make spin locks and mutexes encode their state on an int rather than
a long.
|
|
The condition module intrusively uses mutexes. Augment the interface of
the mutex module so that mutexes and conditions share common code. As a
side effect, the implementation should have gained in clarity.
|
|
|
|
|
|
As the name implies, this module provides sleepable mutual exclusion locks.
|