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); // 非法
接口原型
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_t 类型见上一节。在这个接口中,pipe_t 不能为 PIPE_ALL。
参数名 |
说明 |
|---|---|
pipe |
需要等待完成的流水 |
tpipe |
等待完成后才能触发的流水 |
pipeID |
3bit 事件 ID,仅支持7个事件 ID |
流水类型
PIPE_S
父主题: 同步接口