Skip to content

Commit bb39dfb

Browse files
committed
Change some names to explicit when a debug callback is provided
1 parent a6e2ffa commit bb39dfb

File tree

1 file changed

+30
-26
lines changed

1 file changed

+30
-26
lines changed

include/nbl/system/demote_promote_writer_readers_lock.h

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace impl
4242
};
4343
} //namespace impl
4444

45-
enum DPWR_LOCK_DEBUG_STAGES
45+
enum DPWR_LOCK_DEBUG_STAGE
4646
{
4747
// To ensure correctness during debug, the callback at `BEFORE_STATE_UPDATE` MUST make the virtual thread that called it run again. This is so that during debug
4848
// only the virtual thread holding the flipLock progresses
@@ -54,20 +54,21 @@ enum DPWR_LOCK_DEBUG_STAGES
5454
namespace impl
5555
{
5656
template<typename T>
57-
concept DPWRLDebugCallback = requires(T t, DPWR_LOCK_DEBUG_STAGES stage) {
57+
concept DPWRLDebugCallback = requires(T t, DPWR_LOCK_DEBUG_STAGE stage) {
5858
{ t(stage) } -> std::same_as<void>;
5959
};
6060

6161
class DPWRLVoidDebugCallback
6262
{
63-
void operator()(DPWR_LOCK_DEBUG_STAGES) {};
63+
public:
64+
void operator()(DPWR_LOCK_DEBUG_STAGE) {};
6465
};
6566
}
6667

6768
template <impl::DPWRLDebugCallback DebugCallback = impl::DPWRLVoidDebugCallback>
6869
/**
69-
* @brief By default it has no debug callback. You can provide a debug callback for every stage of the lock's loop (see `perform_under_locked_state` and `DPWR_LOCK_DEBUG_STAGES`)
70-
* as a functional struct that overloads `void operator(DPWR_LOCK_DEBUG_STAGES)`
70+
* @brief By default it has no debug callback. You can provide a debug callback for every stage of the lock's loop (see `perform_under_locked_state` and `DPWR_LOCK_DEBUG_STAGE`)
71+
* as a functional struct that overloads `void operator(DPWR_LOCK_DEBUG_STAGE)`
7172
*/
7273
class demote_promote_writer_readers_lock
7374
{
@@ -78,9 +79,9 @@ class demote_promote_writer_readers_lock
7879
constexpr static inline state_lock_value_t MaxActors = 1023;
7980

8081
template <impl::DPWRLDebugCallback>
81-
friend class dp_read_lock_guard;
82+
friend class dpwr_read_lock_guard_debug;
8283
template <impl::DPWRLDebugCallback>
83-
friend class dp_write_lock_guard;
84+
friend class dpwr_write_lock_guard_debug;
8485

8586
/**
8687
* @brief Acquires lock for reading. This thread will be blocked until there are no writers (writing or pending) and no readers waiting for a writer upgrade.
@@ -300,14 +301,14 @@ class demote_promote_writer_readers_lock
300301
const state_lock_value_t newState = wasPreempted ? preempted(oldState) : success(oldState);
301302
// new state must unlock the state lock
302303
assert(!(newState & flipLock));
303-
if (usingDebugCallback) DebugCallback(DPWR_LOCK_DEBUG_STAGES::BEFORE_STATE_UPDATE);
304+
if (usingDebugCallback) DebugCallback(DPWR_LOCK_DEBUG_STAGE::BEFORE_STATE_UPDATE);
304305
state.store(newState);
305-
if (usingDebugCallback) DebugCallback(DPWR_LOCK_DEBUG_STAGES::AFTER_STATE_UPDATE);
306+
if (usingDebugCallback) DebugCallback(DPWR_LOCK_DEBUG_STAGE::AFTER_STATE_UPDATE);
306307
if (wasPreempted)
307308
{
308309
if (usingDebugCallback)
309310
{
310-
DebugCallback(DPWR_LOCK_DEBUG_STAGES::PREEMPTED);
311+
DebugCallback(DPWR_LOCK_DEBUG_STAGE::PREEMPTED);
311312
}
312313
else
313314
{
@@ -361,59 +362,62 @@ namespace impl
361362
} // namespace impl
362363

363364
template <impl::DPWRLDebugCallback DebugCallback = impl::DPWRLVoidDebugCallback>
364-
class dp_read_lock_guard : public impl::dpwr_lock_guard_base<DebugCallback>
365+
class dpwr_read_lock_guard_debug : public impl::dpwr_lock_guard_base<DebugCallback>
365366
{
366367
using base_t = impl::dpwr_lock_guard_base<DebugCallback>;
367-
using dpwr_lock_t = demote_promote_writer_readers_lock<DebugCallback>;
368-
using dp_write_lock_guard_t = dp_write_lock_guard<DebugCallback>;
369368
public:
370-
dp_read_lock_guard(dpwr_lock_t& lk, std::adopt_lock_t) : base_t(lk) {}
371-
explicit dp_read_lock_guard(dpwr_lock_t& lk) : dp_read_lock_guard(lk, std::adopt_lock_t())
369+
using dpwr_lock_t = demote_promote_writer_readers_lock<DebugCallback>;
370+
using dpwr_write_lock_guard_debug_t = dpwr_write_lock_guard_debug<DebugCallback>;
371+
dpwr_read_lock_guard_debug(dpwr_lock_t& lk, std::adopt_lock_t) : base_t(lk) {}
372+
explicit dpwr_read_lock_guard_debug(dpwr_lock_t& lk) : dpwr_read_lock_guard_debug(lk, std::adopt_lock_t())
372373
{
373374
this->m_lock->read_lock();
374375
}
375-
explicit dp_read_lock_guard(dp_write_lock_guard_t&& wl);
376+
explicit dpwr_read_lock_guard_debug(dpwr_write_lock_guard_debug_t&& wl);
376377

377-
~dp_read_lock_guard()
378+
~dpwr_read_lock_guard_debug()
378379
{
379380
if (this->m_lock)
380381
this->m_lock->read_unlock();
381382
}
382383
};
383384

384385
template <impl::DPWRLDebugCallback DebugCallback = impl::DPWRLVoidDebugCallback>
385-
class dp_write_lock_guard : public impl::dpwr_lock_guard_base<DebugCallback>
386+
class dpwr_write_lock_guard_debug : public impl::dpwr_lock_guard_base<DebugCallback>
386387
{
387388
using base_t = impl::dpwr_lock_guard_base<DebugCallback>;
388-
using dpwr_lock_t = demote_promote_writer_readers_lock<DebugCallback>;
389-
using dp_read_lock_guard_t = dp_read_lock_guard<DebugCallback>;
390389
public:
391-
dp_write_lock_guard(dpwr_lock_t& lk, std::adopt_lock_t) : base_t(lk) {}
392-
explicit dp_write_lock_guard(dpwr_lock_t& lk) : dp_write_lock_guard(lk, std::adopt_lock_t())
390+
using dpwr_lock_t = demote_promote_writer_readers_lock<DebugCallback>;
391+
using dpwr_read_lock_guard_debug_t = dpwr_read_lock_guard_debug<DebugCallback>;
392+
dpwr_write_lock_guard_debug(dpwr_lock_t& lk, std::adopt_lock_t) : base_t(lk) {}
393+
explicit dpwr_write_lock_guard_debug(dpwr_lock_t& lk) : dpwr_write_lock_guard_debug(lk, std::adopt_lock_t())
393394
{
394395
this->m_lock->write_lock();
395396
}
396-
explicit dp_write_lock_guard(dp_read_lock_guard_t&& rl);
397+
explicit dpwr_write_lock_guard_debug(dpwr_read_lock_guard_debug_t&& rl);
397398

398-
~dp_write_lock_guard()
399+
~dpwr_write_lock_guard_debug()
399400
{
400401
if (this->m_lock)
401402
this->m_lock->write_unlock();
402403
}
403404
};
404405

405406
template <impl::DPWRLDebugCallback DebugCallback>
406-
inline dp_read_lock_guard<DebugCallback>::dp_read_lock_guard(dp_write_lock_guard<DebugCallback>&& wl) : impl::dpwr_lock_guard_base(std::move(wl))
407+
inline dpwr_read_lock_guard_debug<DebugCallback>::dpwr_read_lock_guard_debug(dpwr_write_lock_guard_debug<DebugCallback>&& wl) : impl::dpwr_lock_guard_base(std::move(wl))
407408
{
408409
this->m_lock->downgrade();
409410
}
410411

411412
template <impl::DPWRLDebugCallback DebugCallback>
412-
inline dp_write_lock_guard<DebugCallback>::dp_write_lock_guard(dp_read_lock_guard<DebugCallback>&& rl) : impl::dpwr_lock_guard_base(std::move(rl))
413+
inline dpwr_write_lock_guard_debug<DebugCallback>::dpwr_write_lock_guard_debug(dpwr_read_lock_guard_debug<DebugCallback>&& rl) : impl::dpwr_lock_guard_base(std::move(rl))
413414
{
414415
this->m_lock->upgrade();
415416
}
416417

418+
using dpwr_read_lock_guard = dpwr_read_lock_guard_debug<impl::DPWRLVoidDebugCallback>;
419+
using dpwr_write_lock_guard = dpwr_write_lock_guard_debug<impl::DPWRLVoidDebugCallback>;
420+
417421
} // namespace nbl::system
418422

419423
#endif

0 commit comments

Comments
 (0)