armink / FlashDB

An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
Apache License 2.0
1.93k stars 435 forks source link

fix: 修改fix lock issue to fix block on first run (#295)的实现 #297

Closed taokingithub closed 6 months ago

taokingithub commented 6 months ago

虽然#295的实现可以解决首次调用fdb_kvdb_init死锁的问题,但先unlock再lock没有必要,原因如下:因为fdb_kvdb_init中加锁,其调用的_fdb_kv_load中的fdb_kv_set_default中又加锁,如果不用嵌套互斥锁会发生死锁,而fdb_kv_set_default函数只在_fdb_kv_load中调用,因此将其加减锁代码删除即可

armink commented 6 months ago

fdb_kv_set_default 在项目中也会用到的,这个是一个外部接口