set_flag & wait_flag
功能说明
set_flag和wait_flag是一对指令。任何wait_flag指令都会等待直到一个具有相同事件ID的set_flag被执行。每种流水和触发器对都有从0到7的事件ID。set_flag只是设置位,不会阻塞同一流水中的下一个指令。当set_flag之前的所有指令已完成提交,则会触发相应的wait_flag。
值得注意的是,不允许有两个具有相同ID、流水和触发器对但没有相应wait_flag的set_flag。例如:
set_flag(PIPE_M, PIPE_V, 0); set_flag(PIPE_M, PIPE_V, 0); // 非法
参数名 |
说明 |
---|---|
pipe |
需要等待完成的流水 |
tpipe |
等待完成后才能触发的流水 |
pipeID |
3bit事件ID,仅支持7个事件ID。 |
函数原型
void set_flag(pipe_t pipe, pipe_t tpipe, uint64_t pipeID) void set_flag(pipe_t pipe, pipe_t tpipe, event_t pipeID) void wait_flag(pipe_t pipe, pipe_t tpipe, uint64_t pipeID) void wait_flag(pipe_t pipe, pipe_t tpipe, event_t pipeID)
流水类型
PIPE_S
父主题: 同步接口