|
The Pedigree Project 0.1
|
#include <Scheduler.h>
Collaboration diagram for Scheduler::ProcessLease:Public Member Functions | |
| ProcessLease (ProcessLease &&other) noexcept | |
| ProcessLease & | operator= (ProcessLease &&other) noexcept |
| Process * | get () const |
| Process * | operator-> () const |
| operator bool () const | |
| void | reset () |
Private Member Functions | |
| ProcessLease (Process *process) | |
| ProcessLease (const ProcessLease &)=delete | |
| ProcessLease & | operator= (const ProcessLease &)=delete |
Private Attributes | |
| Process * | m_pProcess |
| TerminationDeferral | m_TerminationDeferral |
Friends | |
| class | Scheduler |
Pins one enumerated Process until the lease leaves scope.
Process teardown first removes the object from scheduler enumeration, closes lease admission, and then waits for every admitted lease. This makes it safe to inspect a Process without retaining an unowned raw pointer after the scheduler lock is released. Leases are thread-affine: they may be returned/moved locally but must be released by the Thread which acquired them.
Definition at line 62 of file Scheduler.h.
| Scheduler::ProcessLease::ProcessLease | ( | ) |
Definition at line 55 of file Scheduler.cc.
|
noexcept |
Definition at line 60 of file Scheduler.cc.
| Scheduler::ProcessLease::~ProcessLease | ( | ) |
Definition at line 66 of file Scheduler.cc.
|
explicitprivate |
Definition at line 57 of file Scheduler.cc.
|
inline |
Definition at line 70 of file Scheduler.h.
|
inlineexplicit |
Definition at line 78 of file Scheduler.h.
|
inline |
Definition at line 74 of file Scheduler.h.
|
noexcept |
Definition at line 70 of file Scheduler.cc.
| void Scheduler::ProcessLease::reset | ( | ) |
Definition at line 88 of file Scheduler.cc.
|
friend |
Definition at line 85 of file Scheduler.h.
|
private |
Definition at line 91 of file Scheduler.h.
|
private |
Definition at line 92 of file Scheduler.h.