reader_concurrency_semaphore: add foreach_permit()
Allows iterating over all permits.
This commit is contained in:
@@ -1241,6 +1241,12 @@ std::string reader_concurrency_semaphore::dump_diagnostics(unsigned max_lines) c
|
||||
return os.str();
|
||||
}
|
||||
|
||||
void reader_concurrency_semaphore::foreach_permit(noncopyable_function<void(const reader_permit&)> func) {
|
||||
for (auto& p : _permit_list) {
|
||||
func(reader_permit(p.shared_from_this()));
|
||||
}
|
||||
}
|
||||
|
||||
// A file that tracks the memory usage of buffers resulting from read
|
||||
// operations.
|
||||
class tracking_file_impl : public file_impl {
|
||||
|
||||
@@ -526,4 +526,6 @@ public:
|
||||
uint64_t active_reads() const noexcept {
|
||||
return _stats.current_permits - _stats.inactive_reads - waiters();
|
||||
}
|
||||
|
||||
void foreach_permit(noncopyable_function<void(const reader_permit&)> func);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user