3
3
// found in the LICENSE file.
4
4
5
5
#include " flutter/testing/testing.h" // IWYU pragma: keep.
6
+ #include " fml/closure.h"
6
7
#include " fml/synchronization/waitable_event.h"
7
8
#include " impeller/renderer/backend/vulkan/descriptor_pool_vk.h"
8
9
#include " impeller/renderer/backend/vulkan/resource_manager_vk.h"
@@ -23,27 +24,6 @@ TEST(DescriptorPoolRecyclerVKTest, GetDescriptorPoolRecyclerCreatesNewPools) {
23
24
context->Shutdown ();
24
25
}
25
26
26
- namespace {
27
-
28
- // Invokes the provided callback when the destructor is called.
29
- //
30
- // Can be moved, but not copied.
31
- class DeathRattle final {
32
- public:
33
- explicit DeathRattle (std::function<void ()> callback)
34
- : callback_(std::move(callback)) {}
35
-
36
- DeathRattle (DeathRattle&&) = default ;
37
- DeathRattle& operator =(DeathRattle&&) = default ;
38
-
39
- ~DeathRattle () { callback_ (); }
40
-
41
- private:
42
- std::function<void ()> callback_;
43
- };
44
-
45
- } // namespace
46
-
47
27
TEST (DescriptorPoolRecyclerVKTest, ReclaimMakesDescriptorPoolAvailable) {
48
28
auto const context = MockVulkanContextBuilder ().Build ();
49
29
@@ -64,10 +44,10 @@ TEST(DescriptorPoolRecyclerVKTest, ReclaimMakesDescriptorPoolAvailable) {
64
44
// destroyed. That should give us a non-flaky signal that the pool has been
65
45
// reclaimed as well.
66
46
auto waiter = fml::AutoResetWaitableEvent ();
67
- auto rattle = DeathRattle ([&waiter]() { waiter.Signal (); });
47
+ auto rattle = fml::ScopedCleanupClosure ([&waiter]() { waiter.Signal (); });
68
48
{
69
- UniqueResourceVKT<DeathRattle > resource (context-> GetResourceManager (),
70
- std::move (rattle));
49
+ UniqueResourceVKT<fml::ScopedCleanupClosure > resource (
50
+ context-> GetResourceManager (), std::move (rattle));
71
51
}
72
52
waiter.Wait ();
73
53
}
@@ -98,10 +78,10 @@ TEST(DescriptorPoolRecyclerVKTest, ReclaimDropsDescriptorPoolIfSizeIsExceeded) {
98
78
// See note above.
99
79
for (auto i = 0u ; i < 2 ; i++) {
100
80
auto waiter = fml::AutoResetWaitableEvent ();
101
- auto rattle = DeathRattle ([&waiter]() { waiter.Signal (); });
81
+ auto rattle = fml::ScopedCleanupClosure ([&waiter]() { waiter.Signal (); });
102
82
{
103
- UniqueResourceVKT<DeathRattle > resource (context-> GetResourceManager (),
104
- std::move (rattle));
83
+ UniqueResourceVKT<fml::ScopedCleanupClosure > resource (
84
+ context-> GetResourceManager (), std::move (rattle));
105
85
}
106
86
waiter.Wait ();
107
87
}
@@ -126,10 +106,10 @@ TEST(DescriptorPoolRecyclerVKTest, ReclaimDropsDescriptorPoolIfSizeIsExceeded) {
126
106
127
107
for (auto i = 0u ; i < 2 ; i++) {
128
108
auto waiter = fml::AutoResetWaitableEvent ();
129
- auto rattle = DeathRattle ([&waiter]() { waiter.Signal (); });
109
+ auto rattle = fml::ScopedCleanupClosure ([&waiter]() { waiter.Signal (); });
130
110
{
131
- UniqueResourceVKT<DeathRattle > resource (context-> GetResourceManager (),
132
- std::move (rattle));
111
+ UniqueResourceVKT<fml::ScopedCleanupClosure > resource (
112
+ context-> GetResourceManager (), std::move (rattle));
133
113
}
134
114
waiter.Wait ();
135
115
}
0 commit comments