Skip to content

Commit 3a996fe

Browse files
committed
Checkpoint before adding debug callback to locks
1 parent e9ea6b9 commit 3a996fe

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

include/nbl/system/demote_promote_writer_readers_lock.h

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class demote_promote_writer_readers_lock
7171
return oldState & preemptedMask;
7272
};
7373

74-
perform_under_locked_state(std::move(success), preemptionCheck);
74+
perform_under_locked_state(success, preemptionCheck);
7575
}
7676

7777
/**
@@ -92,7 +92,7 @@ class demote_promote_writer_readers_lock
9292
return (oldState & currentReadersMask) && !(oldState & writingMask);
9393
};
9494

95-
perform_under_locked_state(std::move(success), defaultPreemptionCheck, sanityChecks);
95+
perform_under_locked_state(success, DefaultPreemptionCheck(), sanityChecks);
9696
}
9797

9898
/**
@@ -133,7 +133,7 @@ class demote_promote_writer_readers_lock
133133
return preemptedState;
134134
};
135135

136-
perform_under_locked_state(std::move(success), preemptionCheck, defaultSanityChecks, preempted);
136+
perform_under_locked_state(success, preemptionCheck, defaultSanityChecks, preempted);
137137
}
138138

139139
/**
@@ -154,7 +154,7 @@ class demote_promote_writer_readers_lock
154154
return (oldState & writingMask) && !(oldState & currentReadersMask);
155155
};
156156

157-
perform_under_locked_state(std::move(success), defaultPreemptionCheck, sanityChecks);
157+
perform_under_locked_state(success, DefaultPreemptionCheck(), sanityChecks);
158158
}
159159

160160
/**
@@ -206,7 +206,7 @@ class demote_promote_writer_readers_lock
206206
return preemptedState;
207207
};
208208

209-
perform_under_locked_state(std::move(success), preemptionCheck, sanityChecks, preempted);
209+
perform_under_locked_state(success, preemptionCheck, sanityChecks, preempted);
210210
}
211211

212212
/**
@@ -229,19 +229,26 @@ class demote_promote_writer_readers_lock
229229
return (oldState & writingMask) && !(oldState & currentReadersMask);
230230
};
231231

232-
perform_under_locked_state(std::move(success), defaultPreemptionCheck, sanityChecks);
232+
perform_under_locked_state(success, DefaultPreemptionCheck(), sanityChecks);
233233
}
234234

235235
private:
236236

237-
constexpr static auto defaultPreemptionCheck = [](const state_lock_value_t oldState) -> bool {return false; };
237+
struct DefaultPreemptionCheck
238+
{
239+
bool operator()(state_lock_value_t oldState)
240+
{
241+
return false;
242+
}
243+
};
244+
238245
constexpr static auto defaultPreempted = [](const state_lock_value_t oldState)->state_lock_value_t {return oldState; };
239246
constexpr static auto defaultSanityChecks = [](const state_lock_value_t oldState)->bool {return true; };
240247

241-
template<typename Success, typename PreemptionCheck = decltype(defaultPreemptionCheck), typename SanityChecks = decltype(defaultSanityChecks), typename Preempted = decltype(defaultPreempted)>
248+
template<typename Success, typename PreemptionCheck = DefaultPreemptionCheck, typename SanityChecks = decltype(defaultSanityChecks), typename Preempted = decltype(defaultPreempted)>
242249
inline void perform_under_locked_state(
243250
Success&& success,
244-
PreemptionCheck& preemptionCheck = defaultPreemptionCheck,
251+
PreemptionCheck&& preemptionCheck = DefaultPreemptionCheck(),
245252
SanityChecks& sanityChecks = defaultSanityChecks,
246253
Preempted& preempted = defaultPreempted
247254
)

0 commit comments

Comments
 (0)