home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
PROGRAM
/
DJDEV106.ZIP
/
SAMPLES
/
GRTASK
/
TASK.H
< prev
Wrap
C/C++ Source or Header
|
1991-03-20
|
731b
|
46 lines
#ifndef _task_h_
#define _task_h_
#include <setjmp.h>
typedef int (TaskProc)(int, void*);
class Task {
public:
Task *prev; // links into run-state queues
Task *next;
Task *parent;
jmp_buf state;
unsigned *stack;
unsigned stack_len;
enum RunState {
Running,
Blocked,
Waiting,
Dead
};
RunState run_state;
int ret_val;
friend int fall_off_end();
public:
Task(TaskProc proc=0, int val=0, void* ptr=0, int stacksize=1024); // use default proc in main() to setup initial task
~Task();
int ReturnValue();
friend int Wait(Task* child=0);
friend void Return(int rv=0);
friend void Yield();
};
extern Task *thisTask;
#endif