关于[elog_output()]与[elog_flush()]二者互斥锁未分离的疑问
bookshiyi opened this issue · comments
book诗意 commented
void elog_output(){
...
elog_output_lock();
elog_port_output()/elog_buf_output()/elog_async_output();
elog_output_unlock();
...
}
void elog_flush(){
...
elog_output_lock();
elog_port_output();
elog_output_unlock();
...
}
当处于直出模式时,需要通过互斥锁控制访问权限的资源只有一个:
1.输出接口(如串口、文件系统等)
当处于BUF模式时,实际需要通过互斥锁控制访问权限的资源有两个:
1.buffer
2.输出接口(如串口、文件系统等)
但实际代码中并未对此进行区分。
BR.
book诗意 commented
理解错了。读缓冲区
和写入串口/文件
为同步操作,无需互斥锁。