1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2 // This source code is licensed under both the GPLv2 (found in the
3 // COPYING file in the root directory) and Apache 2.0 License
4 // (found in the LICENSE.Apache file in the root directory).
5
6 #include "test_util/sync_point.h"
7 #include "test_util/sync_point_impl.h"
8
9 int rocksdb_kill_odds = 0;
10 std::vector<std::string> rocksdb_kill_prefix_blacklist;
11
12 #ifndef NDEBUG
13 namespace ROCKSDB_NAMESPACE {
14
GetInstance()15 SyncPoint* SyncPoint::GetInstance() {
16 static SyncPoint sync_point;
17 return &sync_point;
18 }
19
SyncPoint()20 SyncPoint::SyncPoint() : impl_(new Data) {}
21
~SyncPoint()22 SyncPoint:: ~SyncPoint() {
23 delete impl_;
24 }
25
LoadDependency(const std::vector<SyncPointPair> & dependencies)26 void SyncPoint::LoadDependency(const std::vector<SyncPointPair>& dependencies) {
27 impl_->LoadDependency(dependencies);
28 }
29
LoadDependencyAndMarkers(const std::vector<SyncPointPair> & dependencies,const std::vector<SyncPointPair> & markers)30 void SyncPoint::LoadDependencyAndMarkers(
31 const std::vector<SyncPointPair>& dependencies,
32 const std::vector<SyncPointPair>& markers) {
33 impl_->LoadDependencyAndMarkers(dependencies, markers);
34 }
35
SetCallBack(const std::string & point,const std::function<void (void *)> & callback)36 void SyncPoint::SetCallBack(const std::string& point,
37 const std::function<void(void*)>& callback) {
38 impl_->SetCallBack(point, callback);
39 }
40
ClearCallBack(const std::string & point)41 void SyncPoint::ClearCallBack(const std::string& point) {
42 impl_->ClearCallBack(point);
43 }
44
ClearAllCallBacks()45 void SyncPoint::ClearAllCallBacks() {
46 impl_->ClearAllCallBacks();
47 }
48
EnableProcessing()49 void SyncPoint::EnableProcessing() {
50 impl_->EnableProcessing();
51 }
52
DisableProcessing()53 void SyncPoint::DisableProcessing() {
54 impl_->DisableProcessing();
55 }
56
ClearTrace()57 void SyncPoint::ClearTrace() {
58 impl_->ClearTrace();
59 }
60
Process(const std::string & point,void * cb_arg)61 void SyncPoint::Process(const std::string& point, void* cb_arg) {
62 impl_->Process(point, cb_arg);
63 }
64
65 } // namespace ROCKSDB_NAMESPACE
66 #endif // NDEBUG
67