Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

WvTaskMan Class Reference

#include <wvtask.h>

List of all members.

Public Methods

 WvTaskMan ()
virtual ~WvTaskMan ()
WvTaskstart (const WvString &name, WvTask::TaskFunc *func, void *userdata, size_t stacksize=64 *1024)
int run (WvTask &task, int val=1)
int yield (int val=1)
WvTaskwhoami () const
 WvTaskMan ()
virtual ~WvTaskMan ()
WvTaskstart (const WvString &name, WvTask::TaskFunc *func, void *userdata, size_t stacksize=64 *1024)
int run (WvTask &task, int val=1)
int yield (int val=1)
WvTaskwhoami () const

Private Methods

void get_stack (WvTask &task, size_t size)
void stackmaster ()
void _stackmaster ()
void do_task ()
void get_stack (WvTask &task, size_t size)
void stackmaster ()
void _stackmaster ()
void do_task ()

Private Attributes

int magic_number
WvTaskList free_tasks
jmp_buf stackmaster_task
WvTaskstack_target
jmp_buf get_stack_return
WvTaskcurrent_task
jmp_buf toplevel
WvTaskstack_target
WvTaskcurrent_task

Friends

class WvTask


Constructor & Destructor Documentation

WvTaskMan::WvTaskMan  
 

Definition at line 78 of file wvtask.cc.

References current_task, Dprintf, get_stack_return, magic_number, and stackmaster().

WvTaskMan::~WvTaskMan   [virtual]
 

Definition at line 93 of file wvtask.cc.

References Dprintf, magic_number, and WvTask::numrunning.

WvTaskMan::WvTaskMan  
 

virtual WvTaskMan::~WvTaskMan   [virtual]
 


Member Function Documentation

void WvTaskMan::_stackmaster   [private]
 

void WvTaskMan::_stackmaster   [private]
 

Definition at line 220 of file wvtask.cc.

References do_task(), Dprintf, get_stack_return, magic_number, and stackmaster_task.

Referenced by stackmaster().

void WvTaskMan::do_task   [private]
 

void WvTaskMan::do_task   [private]
 

Definition at line 258 of file wvtask.cc.

References Dprintf, WvTask::func, WvTask::magic_number, magic_number, WvTask::mystate, WvTask::name, WvTask::numrunning, WvTask::running, stack_target, WvTask::userdata, and yield().

Referenced by _stackmaster().

void WvTaskMan::get_stack WvTask   task,
size_t    size
[private]
 

void WvTaskMan::get_stack WvTask   task,
size_t    size
[private]
 

Definition at line 189 of file wvtask.cc.

References get_stack_return, WvTask::magic_number, magic_number, size, stack_target, and stackmaster_task.

Referenced by WvTask::WvTask().

int WvTaskMan::run WvTask   task,
int    val = 1
 

int WvTaskMan::run WvTask   task,
int    val = 1
 

Definition at line 130 of file wvtask.cc.

References current_task, Dprintf, WvTask::magic_number, magic_number, WvTask::mystate, WvTask::name, WvTask::recycled, WvTask::tid, and toplevel.

Referenced by WvStream::callback(), WvStream::terminate_continue_select(), and WvStream::~WvStream().

void WvTaskMan::stackmaster   [private]
 

void WvTaskMan::stackmaster   [private]
 

Definition at line 211 of file wvtask.cc.

References _stackmaster().

Referenced by WvTaskMan().

WvTask* WvTaskMan::start const WvString   name,
WvTask::TaskFunc   func,
void *    userdata,
size_t    stacksize = 64 *1024
 

WvTask * WvTaskMan::start const WvString   name,
WvTask::TaskFunc   func,
void *    userdata,
size_t    stacksize = 64 *1024
 

Definition at line 103 of file wvtask.cc.

References free_tasks, WvTask::recycled, WvTask::start(), WvTask::TaskFunc, and WvTask.

Referenced by WvStream::callback().

WvTask* WvTaskMan::whoami   const [inline]
 

Definition at line 88 of file utils/wvtask.h.

WvTask* WvTaskMan::whoami   const [inline]
 

Definition at line 88 of file include/wvtask.h.

Referenced by WvStream::continue_select().

int WvTaskMan::yield int    val = 1
 

int WvTaskMan::yield int    val = 1
 

Definition at line 166 of file wvtask.cc.

References current_task, Dprintf, WvTask::mystate, WvTask::name, WvTask::tid, and toplevel.

Referenced by WvStream::continue_select(), and do_task().


Friends And Related Function Documentation

WvTask [friend]
 

Definition at line 59 of file include/wvtask.h.

Referenced by start().


Member Data Documentation

WvTask* WvTaskMan::current_task [private]
 

Definition at line 72 of file utils/wvtask.h.

WvTask* WvTaskMan::current_task [private]
 

Definition at line 72 of file include/wvtask.h.

Referenced by run(), WvTaskMan(), and yield().

WvTaskList WvTaskMan::free_tasks [private]
 

Definition at line 61 of file utils/wvtask.h.

Referenced by WvTask::recycle(), and start().

jmp_buf WvTaskMan::get_stack_return [private]
 

Definition at line 70 of file utils/wvtask.h.

Referenced by _stackmaster(), get_stack(), and WvTaskMan().

int WvTaskMan::magic_number [private]
 

Definition at line 60 of file utils/wvtask.h.

Referenced by _stackmaster(), do_task(), get_stack(), run(), WvTaskMan(), and ~WvTaskMan().

WvTask* WvTaskMan::stack_target [private]
 

Definition at line 69 of file utils/wvtask.h.

WvTask* WvTaskMan::stack_target [private]
 

Definition at line 69 of file include/wvtask.h.

Referenced by do_task(), and get_stack().

jmp_buf WvTaskMan::stackmaster_task [private]
 

Definition at line 67 of file utils/wvtask.h.

Referenced by _stackmaster(), and get_stack().

jmp_buf WvTaskMan::toplevel [private]
 

Definition at line 73 of file utils/wvtask.h.

Referenced by run(), and yield().


The documentation for this class was generated from the following files:
Generated on Sat Aug 24 21:37:08 2002 for WvStreams by doxygen1.2.15