switched reactor to absl::flat_hash_map (flutter/engine#56845)
We don't need consistent pointers anymore since we are avoiding deleting objects to minimize time in the writer lock related pr with benchmarks: https://github.com/flutter/engine/pull/56844 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
This commit is contained in:
parent
be97fbcf13
commit
6e278bf216
@ -104,5 +104,6 @@ impeller_component("gles") {
|
||||
"../../:renderer",
|
||||
"../../../shader_archive",
|
||||
"//flutter/fml",
|
||||
"//flutter/third_party/abseil-cpp/absl/container:flat_hash_map",
|
||||
]
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "flutter/third_party/abseil-cpp/absl/container/flat_hash_map.h"
|
||||
#include "fml/closure.h"
|
||||
#include "impeller/base/thread.h"
|
||||
#include "impeller/renderer/backend/gles/handle_gles.h"
|
||||
@ -276,12 +277,10 @@ class ReactorGLES {
|
||||
std::map<std::thread::id, std::vector<Operation>> ops_ IPLR_GUARDED_BY(
|
||||
ops_mutex_);
|
||||
|
||||
// Make sure the container is one where erasing items during iteration doesn't
|
||||
// invalidate other iterators.
|
||||
using LiveHandles = std::unordered_map<const HandleGLES,
|
||||
LiveHandle,
|
||||
HandleGLES::Hash,
|
||||
HandleGLES::Equal>;
|
||||
using LiveHandles = absl::flat_hash_map<const HandleGLES,
|
||||
LiveHandle,
|
||||
HandleGLES::Hash,
|
||||
HandleGLES::Equal>;
|
||||
mutable RWMutex handles_mutex_;
|
||||
LiveHandles handles_ IPLR_GUARDED_BY(handles_mutex_);
|
||||
int32_t handles_to_collect_count_ IPLR_GUARDED_BY(handles_mutex_) = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user