void PT_INIT(struct pt *pt);
说明:初始化一个protothread。运行protothread之前,必须优先进行protothread的初始化。
参数:pt -- 指向protothread结构体的指针。
返回:无。
void PT_THREAD(name_args);
说明:定义申明一个protothread。所有的protothread都必须要通过此宏定义来定义申明。
参数:name_args -- 需要定义申明的protothread名称和参数。
返回:无。
void PT_BEGIN(struct pt *pt);
说明:申明一个protothread的开始位置。该函数应该放置在protothread运行开始的位置。
所有放置在PT_BEGIN()之前的语句,在每次protothread被调度时,都会运行。
参数:pt -- 指向protothread结构体的指针。
返回:无。
void PT_EXIT(struct pt *pt);
说明:退出protothread。
参数:pt -- 指向protothread结构体的指针。
返回:无。
void PT_END(struct pt *pt);
说明:申明一个protothread的结束位置。该函数应该与PT_BEGIN()成对出现。
参数:pt -- 指向protothread结构体的指针。
返回:无。
void PT_WAIT_UNTIL(struct pt *pt, condition);
说明:protothread处于阻塞状态,直到condition条件成立。
参数:pt -- 指向protothread结构体的指针。
condition -- 判断的条件。
返回:无。
void PT_WAIT_WHILE(struct pt *pt, condition);
说明:当condition条件成立, protothread处于阻塞状态。
参数:pt -- 指向protothread结构体的指针。
condition -- 判断的条件。
返回:无。
void PT_WAIT_THREAD(struct pt *pt, thread);
说明:protothread处于阻塞状态,直到子线程thread完成。
在调用该函数之前,必须手动将子线程thread初始化。
参数:pt -- 指向protothread结构体的指针。
thread -- 带参数的子线程。
返回:无。
char T_SCHEDULE(protothread);
说明:调度一个protothread。
参数:protothread -- 需要被调度的带参数的线程。
返回:0 -- protothread已经退出或者结束;
非0 -- protothread正在运行中。