#include <task-manager.h>
Public Types | |
enum | SwitchType { TO, FROM } |
Public Member Functions | |
void * | GetContext (void) const |
void * | GetExtraContext (void) const |
bool | IsActive (void) const |
bool | IsBlocked (void) const |
bool | IsDead (void) const |
bool | IsRunning (void) const |
void | SetContext (void *ctx) |
void | SetExtraContext (void *ctx) |
void | SetSwitchNotifier (void(*fn)(enum SwitchType, void *), void *context) |
Private Types | |
enum | State { RUNNING, ACTIVE, BLOCKED, DEAD } |
Private Member Functions | |
~Task () |
Private Attributes | |
void * | m_context |
void * | m_extraContext |
Fiber * | m_fiber |
enum State | m_state |
void(* | m_switchNotifier )(enum SwitchType, void *) |
void * | m_switchNotifierContext |
EventId | m_waitTimer |
Friends | |
class | TaskManager |
Definition at line 18 of file task-manager.h.
|
private |
Definition at line 41 of file task-manager.h.
Definition at line 21 of file task-manager.h.
|
private |
Definition at line 74 of file task-manager.cc.
void * ns3::Task::GetContext | ( | void | ) | const |
Definition at line 62 of file task-manager.cc.
References m_context.
Referenced by ns3::Current(), and ns3::LinuxSocketFdFactory::TaskCurrent().
void * ns3::Task::GetExtraContext | ( | void | ) | const |
Definition at line 57 of file task-manager.cc.
References m_extraContext.
Referenced by ns3::LinuxSocketImpl::ScheduleTaskTrampoline(), ns3::LinuxSocketFdFactory::ScheduleTaskTrampoline(), ns3::LinuxSocketFdFactory::TaskCurrent(), and ns3::LinuxSocketFdFactory::TaskStart().
bool ns3::Task::IsActive | ( | void | ) | const |
Definition at line 27 of file task-manager.cc.
References ACTIVE, and m_state.
Referenced by ns3::Waiter::Wakeup(), and ns3::WaitPoint::WakeUpCallback().
bool ns3::Task::IsBlocked | ( | void | ) | const |
Definition at line 37 of file task-manager.cc.
References BLOCKED, and m_state.
Referenced by dce_pthread_kill(), ns3::LinuxSocketFdFactory::TaskWakeup(), ns3::UtilsSendSignal(), ns3::Waiter::Wakeup(), and ns3::WaitPoint::WakeUpCallback().
bool ns3::Task::IsDead | ( | void | ) | const |
Definition at line 42 of file task-manager.cc.
bool ns3::Task::IsRunning | ( | void | ) | const |
Definition at line 32 of file task-manager.cc.
void ns3::Task::SetContext | ( | void * | ctx | ) |
Definition at line 52 of file task-manager.cc.
References m_context.
Referenced by ns3::DceManager::Clone(), dce_pthread_create(), ns3::DceManager::Execve(), ns3::LinuxSocketImpl::ScheduleTask(), ns3::DceManager::Start(), ns3::DceManager::StartInternalTask(), and ns3::DceManager::StartTemporaryTask().
void ns3::Task::SetExtraContext | ( | void * | ctx | ) |
Definition at line 47 of file task-manager.cc.
References m_extraContext.
Referenced by ns3::LinuxSocketFdFactory::ScheduleTask(), ns3::LinuxSocketImpl::ScheduleTask(), ns3::LinuxSocketImpl::ScheduleTaskTrampoline(), ns3::LinuxSocketFdFactory::ScheduleTaskTrampoline(), ns3::LinuxSocketFdFactory::TaskCurrent(), and ns3::LinuxSocketFdFactory::TaskStart().
void ns3::Task::SetSwitchNotifier | ( | void(*)(enum SwitchType, void *) | fn, |
void * | context | ||
) |
Definition at line 68 of file task-manager.cc.
References m_switchNotifier, and m_switchNotifierContext.
Referenced by ns3::DceManager::Clone(), dce_exit(), dce_pthread_create(), ns3::DceManager::Execve(), ns3::LinuxSocketFdFactory::ScheduleTask(), ns3::DceManager::Start(), and ns3::LinuxSocketFdFactory::TaskStart().
|
friend |
Definition at line 39 of file task-manager.h.
|
private |
Definition at line 51 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), GetContext(), SetContext(), and ns3::TaskManager::Start().
|
private |
Definition at line 52 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), GetExtraContext(), SetExtraContext(), and ns3::TaskManager::Start().
|
private |
Definition at line 49 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), ns3::TaskManager::ExecOnMain(), ns3::TaskManager::GarbageCollectDeadTasks(), ns3::TaskManager::GetStackSize(), ns3::TaskManager::Schedule(), ns3::TaskManager::Start(), and ns3::TaskManager::Stop().
|
private |
Definition at line 48 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), ns3::TaskManager::EndWait(), ns3::TaskManager::Exit(), IsActive(), IsBlocked(), IsDead(), IsRunning(), ns3::TaskManager::Schedule(), ns3::TaskManager::Sleep(), ns3::TaskManager::Start(), ns3::TaskManager::Stop(), ns3::TaskManager::Wakeup(), and ns3::TaskManager::Yield().
|
private |
Definition at line 53 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), ns3::TaskManager::Schedule(), SetSwitchNotifier(), and ns3::TaskManager::Start().
|
private |
Definition at line 54 of file task-manager.h.
Referenced by ns3::TaskManager::Clone(), ns3::TaskManager::Schedule(), SetSwitchNotifier(), and ns3::TaskManager::Start().
|
private |
Definition at line 50 of file task-manager.h.
Referenced by ns3::TaskManager::Exit(), ns3::TaskManager::GarbageCollectDeadTasks(), ns3::TaskManager::Schedule(), ns3::TaskManager::Sleep(), and ns3::TaskManager::Stop().