|
|
@ -391,6 +391,12 @@ Status DBImpl::DeleteIndex(const std::string& fieldName) { |
|
|
|
关键代码: |
|
|
|
```cpp |
|
|
|
Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) { |
|
|
|
// 创建读写锁,放在函数内部 |
|
|
|
static std::mutex rw_mutex_; // 替换为 std::mutex,适用于 C++11 或更低版本 |
|
|
|
|
|
|
|
// 加写锁,确保写操作的原子性 |
|
|
|
std::unique_lock<std::mutex> lock(rw_mutex_); |
|
|
|
|
|
|
|
... |
|
|
|
// 在主数据库写入新数据 |
|
|
|
batch.Put(key, val); |
|
|
@ -434,6 +440,12 @@ Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) { |
|
|
|
关键代码: |
|
|
|
```cpp |
|
|
|
Status DBImpl::Delete(const WriteOptions& options, const Slice& key) { |
|
|
|
// 创建读写锁,放在函数内部 |
|
|
|
static std::mutex rw_mutex_; // 替换为 std::mutex,适用于 C++11 或更低版本 |
|
|
|
|
|
|
|
// 加写锁,确保写操作的原子性 |
|
|
|
std::unique_lock<std::mutex> lock(rw_mutex_); |
|
|
|
|
|
|
|
... |
|
|
|
// 从主数据库删除目标键 |
|
|
|
batch.Delete(key); |
|
|
|