\makeglossaries \longnewglossaryentry{callsite-locking} {name={callsite-locking}} { Locking done by the calling routine. With this technique, a routine calling a monitor routine aquires 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 aquires the monitor \emph{after} entering the routine body but prior to any other code. } \longnewglossaryentry{bulk-acq} {name={bulk-acquiring}} { Implicitly acquiring several monitors when entering a monitor. } \longnewglossaryentry{multi-acq} {name={multiple-acquisition}} { Any locking technique that allows a single thread to acquire the same lock multiple times. } \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 invisible 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 another fiber. \textit{Synonyms : Tasks.} } \longnewglossaryentry{job} {name={job}} { Unit of work, often sent to a thread pool or worker pool to be executed. Has neither its own stack nor 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}} { A group of \gls{kthread} executed in isolation. \textit{Synonyms : None.} } \longnewglossaryentry{cfathread} {name={thread}} { User level threads that are the default in \CFA. Generally declared using the \code{thread} keyword. \textit{Synonyms : None.} } \longnewglossaryentry{preemption} {name={preemption}} { Involuntary context switch imposed on threads at a specified rate. \textit{Synonyms : None.} } \newacronym{tls}{TLS}{Thread Local Storage} \newacronym{api}{API}{Application Program Interface} \newacronym{raii}{RAII}{Resource Acquisition Is Initialization} \newacronym{numa}{NUMA}{Non-Uniform Memory Access}