Age | Commit message (Collapse) | Author |
|
In preparation of the rework of atomic operations, all atomic function
calls are fixed to use fully supported, compatible types. This means
that atomic operations ar erestricted to 32-bit and 64-bit, and that
value types must be strictly compatible with pointer types.
|
|
These shortcuts just don't bring enough value.
|
|
|
|
Making the unlock operation block allows tricky deadlocks to occur in
case a thread is interrupted right before announcing itself as the first
waiter in the queue.
Since locking is expected to block, the spinlock implementation is
reworked to move the hand-off performed by the unlock operation into
the lock operation.
As a side effect, the common case of a single waiter is also optimized.
|
|
Use standard errno codes. This change also adds strerror to string.h.
|
|
|
|
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.
|
|
|
|
|
|
|
|
This reverts commit b1aa94d0c7dba4138f651e6b081c1a0055ea8d54.
New occurrences of #error are also affected by this commit.
|
|
Stick to a sequentially consistent model for most atomic operations as it
matches the semantics of the existing code. Each call site will have to be
reevaluated in order to switch to more relaxed accesses where possible.
|
|
This new implementation, based on the MCS locks, provides rigorous
fairness and excellent scalability.
|