armink / EasyLogger

An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于[elog_output()]与[elog_flush()]二者互斥锁未分离的疑问

bookshiyi opened this issue · comments

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.

理解错了。读缓冲区写入串口/文件为同步操作,无需互斥锁。