summaryrefslogtreecommitdiff
path: root/kern/thread.h
AgeCommit message (Collapse)Author
2019-09-13Fix the documentation according to the memory modelmemory_model_devRichard Braun
Also, change the ordering requirements of some operations.
2019-08-19Describe thread_sleep and thread_delayRichard Braun
2019-08-19Document thread_delayRichard Braun
2019-08-16Replace some barrier()s with local atomic fencesRichard Braun
2019-08-16Reword and change the semantics of thread-local critical section primitivesRichard Braun
2019-08-16First attempt, incompleteRichard Braun
2019-01-17Replace "awaken" with "awoken"Richard Braun
See https://www.merriam-webster.com/words-at-play/usage-awaken-awoken-awakened.
2018-11-17kern/thread: fix suspend on dead threadsRichard Braun
2018-11-05kern/thread: implement suspend/resume operationsAgustina Arzille
2018-08-12kern/thread: make thread-specific data optionalRichard Braun
2018-07-07kern/thread: add thread name accessorRichard Braun
2018-06-26kern/thread: update commentRichard Braun
2018-06-25kern/perfmon: new moduleRichard Braun
2018-06-25kern/thread: new thread_cpu functionRichard Braun
2018-06-25kern/thread: slightly rework thread state handlingRichard Braun
2018-05-14kern/thread: make thread_create slightly more convenientRichard Braun
Don't require the caller to pass a pointer to the newly created thread.
2018-04-21Fix atomic operations argument typesRichard Braun
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.
2018-04-19kern/atomic: remove shortcutsRichard Braun
These shortcuts just don't bring enough value.
2018-02-24New errno.h standard headerRichard Braun
Use standard errno codes. This change also adds strerror to string.h.
2018-02-24Don't use reserved identifiersRichard Braun
2018-02-20kern/llsync: remove moduleRichard Braun
2018-02-20kern/rcu: new moduleRichard Braun
This module implements preemptible RCU.
2018-02-12kern/thread: minor changesRichard Braun
Make thread_runq_schedule() slightly more resilient by setting the next thread pointer to NULL after the context switch.
2018-01-30Fix condition variable broadcastingRichard Braun
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.
2018-01-10kern/thread: minor name changesRichard Braun
Call the various thread-local nesting counters "levels".
2017-12-03Revert "Make assert have no side effects"Richard Braun
This reverts commit d18d0e85596f90e0bd597b33d58209d0b3973c95.
2017-09-21New build systemRichard Braun
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations.
2017-09-06Use new thread_check_intr_context function consistentlyRichard Braun
2017-09-05kern/thread: new thread_get_tcb functionRichard Braun
2017-09-02kern/thread: new preemption control macrosRichard Braun
These new macros take care of disabling/restoring interrupts in the appropriate order.
2017-09-02Make assert have no side effectsRichard Braun
This makes sure symbols referenced by assert uses may not be generated if unused. The recently introduced __unused macro is used to suppress compiler warnings resulting from this change.
2017-08-27Add TODO entriesRichard Braun
2017-08-27kern/thread: add the thread_delay functionRichard Braun
2017-08-27kern/thread: implement timed sleepsRichard Braun
2017-08-27kern/clock: new moduleRichard Braun
2017-08-25kern/thread: don't trigger priority propagation on return from interruptRichard Braun
2017-08-23kern/thread: really fix terminationRichard Braun
Change the semantics of thread_join so that it not only waits for thread_exit but also for the last reference to be dropped.
2017-07-21Merge branch 'adaptive_spinning'Richard Braun
2017-07-21kern/mutex: new adaptive spinning mutex implementationAgustina Arzille
2017-07-14Fix inclusions of kern/init.h when declaring init operationsRichard Braun
2017-07-13Switch to initialization operationsRichard Braun
2017-06-25Use the C11 alignas and noreturn macrosRichard Braun
2017-06-24Move the HZ macro to the kern/thread moduleRichard Braun
2017-06-14x86: improve TCB load and context switchRichard Braun
2017-06-03kern/thread: improve thread_wakeup robustnessRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
2017-05-16x86/trap: add interrupt stacksAgustina Arzille
2017-05-09Replace sequential consistency with more efficient ordersAgustina Arzille
2017-04-04Use the new atomic operations interfaceAgustina Arzille
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.
2017-03-19kern/thread: new thread_assert_interrupted functionRichard Braun