void unlock_for_read();
void promote_from_read();
void demote_to_read();
+ unsigned get_readers() const {
+ return readers;
+ }
// for shared writers
seastar::future<> lock_for_write(bool greedy);
void unlock_for_write();
void promote_from_write();
void demote_to_write();
+ unsigned get_writers() const {
+ return writers;
+ }
// for exclusive users
seastar::future<> lock_for_excl();
bool try_lock_for_excl() noexcept;
void unlock_for_excl();
+ bool is_excl_acquired() const {
+ return exclusively_used;
+ }
bool is_acquired() const;