#include <adt/list.h>
#include <fibril.h>
#include <thread.h>
#include <tls.h>
#include <malloc.h>
#include <unistd.h>
#include <stdio.h>
#include <arch/barrier.h>
#include <libarch/faddr.h>
#include <futex.h>
#include <assert.h>
#include <async.h>
Go to the source code of this file.
Defines | |
#define | FIBRIL_INITIAL_STACK_PAGES_NO 1 |
Functions | |
void | fibril_add_manager (fid_t fid) |
Add a fibril to the manager list. | |
void | fibril_add_ready (fid_t fid) |
Add a fibril to the ready list. | |
fid_t | fibril_create (int(*func)(void *), void *arg) |
Create a new fibril. | |
void | fibril_dec_sercount (void) |
Restore the preemption counter to the previous state. | |
fid_t | fibril_get_id (void) |
Return fibril id of the currently running fibril. | |
int | fibril_get_sercount (void) |
void | fibril_inc_sercount (void) |
Disable preemption. | |
static void | fibril_main (void) |
Function that spans the whole life-cycle of a fibril. | |
void | fibril_remove_manager (void) |
Remove one manager from the manager list. | |
fibril_t * | fibril_setup (void) |
Setup fibril information into TCB structure. | |
int | fibril_switch (fibril_switch_type_t stype) |
Switch from the current fibril. | |
void | fibril_teardown (fibril_t *fibril) |
Variables | |
static atomic_t | fibril_futex = FUTEX_INITIALIZER |
This futex serializes access to ready_list, serialized_list and manager_list. | |
static fibril_local int | serialization_count |
Fibril-local count of serialization. | |
static int | serialized_threads |
Number of threads that are executing a manager fibril and are serialized. | |
static int | threads_in_manager |
Number of threads that are executing a manager fibril. |
Definition in file fibril.c.