\makeglossaries

\longnewglossaryentry{callsite-locking}
{name={callsite-locking}}
{
Locking done by the calling routine. With this technique, a routine calling a monitor routine will aquire the monitor \emph{before} making the call to the actuall routine.
}

\longnewglossaryentry{entry-point-locking}
{name={entry-point-locking}}
{
Locking done by the called routine. With this technique, a monitor routine called by another routine will aquire the monitor \emph{after} entering the routine body but prior to any other code.
}

\longnewglossaryentry{group-acquire}
{name={bulk acquiring}}
{
Implicitly acquiring several monitors when entering a monitor.
}

\longnewglossaryentry{mon-ctx}
{name={monitor context}}
{
The state of the current thread regarding which monitors are owned.
}


\longnewglossaryentry{uthread}
{name={user-level thread}}
{
Threads created and managed inside user-space. Each thread has its own stack and its own thread of execution. User-level threads are insisible to the underlying operating system.

\textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
}

\longnewglossaryentry{kthread}
{name={kernel-level thread}}
{
Threads created and managed inside kernel-space. Each thread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system.

\textit{Synonyms : OS threads, Hardware threads, Physical threads.}
}

\longnewglossaryentry{fiber}
{name={fiber}}
{
Fibers are non-preemptive user-level threads. They share most of the caracteristics of user-level threads except that they cannot be preempted by an other fiber.

\textit{Synonyms : Tasks.}
}

\longnewglossaryentry{job}
{name={job}}
{
Unit of work, often send to a thread pool or worker pool to be executed. Has neither its own stack or its own thread of execution.

\textit{Synonyms : Tasks.}
}

\longnewglossaryentry{pool}
{name={thread-pool}}
{
Group of homogeneuous threads that loop executing units of works after another.

\textit{Synonyms : }
}

\longnewglossaryentry{cfacluster}
{name={cluster}}
{
TBD...

\textit{Synonyms : None.}
}

\longnewglossaryentry{cfacpu}
{name={processor}}
{
TBD...

\textit{Synonyms : None.}
}

\longnewglossaryentry{cfathread}
{name={thread}}
{
TBD...

\textit{Synonyms : None.}
}

\longnewglossaryentry{preemption}
{name={preemption}}
{
TBD...

\textit{Synonyms : None.}
}

\newacronym{tls}{TLS}{Thread Local Storage}
\newacronym{api}{API}{Application Program Interface}
\newacronym{raii}{RAII}{Ressource Acquisition Is Initialization}
