1
1
#include " cleanup_queue.h" // NOLINT(build/include_inline)
2
2
#include < algorithm>
3
+ #include < ranges>
3
4
#include < vector>
4
5
#include " cleanup_queue-inl.h"
5
6
@@ -8,27 +9,20 @@ namespace node {
8
9
std::vector<CleanupQueue::CleanupHookCallback> CleanupQueue::GetOrdered ()
9
10
const {
10
11
// Copy into a vector, since we can't sort an unordered_set in-place.
11
- std::vector<CleanupHookCallback> callbacks (cleanup_hooks_.begin (),
12
- cleanup_hooks_.end ());
12
+ std::vector callbacks (cleanup_hooks_.begin (), cleanup_hooks_.end ());
13
13
// We can't erase the copied elements from `cleanup_hooks_` yet, because we
14
14
// need to be able to check whether they were un-scheduled by another hook.
15
15
16
- std::sort (callbacks.begin (),
17
- callbacks.end (),
18
- [](const CleanupHookCallback& a, const CleanupHookCallback& b) {
19
- // Sort in descending order so that the most recently inserted
20
- // callbacks are run first.
21
- return a.insertion_order_counter_ > b.insertion_order_counter_ ;
22
- });
16
+ // Sort in descending order so that the most recently inserted callbacks are
17
+ // run first.
18
+ std::ranges::sort (callbacks, std::greater ());
23
19
24
20
return callbacks;
25
21
}
26
22
27
23
void CleanupQueue::Drain () {
28
- std::vector<CleanupHookCallback> callbacks = GetOrdered ();
29
-
30
- for (const CleanupHookCallback& cb : callbacks) {
31
- if (cleanup_hooks_.count (cb) == 0 ) {
24
+ for (const CleanupHookCallback& cb : GetOrdered ()) {
25
+ if (!cleanup_hooks_.contains (cb)) {
32
26
// This hook was removed from the `cleanup_hooks_` set during another
33
27
// hook that was run earlier. Nothing to do here.
34
28
continue ;
0 commit comments