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",
|
"../../:renderer",
|
||||||
"../../../shader_archive",
|
"../../../shader_archive",
|
||||||
"//flutter/fml",
|
"//flutter/fml",
|
||||||
|
"//flutter/third_party/abseil-cpp/absl/container:flat_hash_map",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "flutter/third_party/abseil-cpp/absl/container/flat_hash_map.h"
|
||||||
#include "fml/closure.h"
|
#include "fml/closure.h"
|
||||||
#include "impeller/base/thread.h"
|
#include "impeller/base/thread.h"
|
||||||
#include "impeller/renderer/backend/gles/handle_gles.h"
|
#include "impeller/renderer/backend/gles/handle_gles.h"
|
||||||
@ -276,9 +277,7 @@ class ReactorGLES {
|
|||||||
std::map<std::thread::id, std::vector<Operation>> ops_ IPLR_GUARDED_BY(
|
std::map<std::thread::id, std::vector<Operation>> ops_ IPLR_GUARDED_BY(
|
||||||
ops_mutex_);
|
ops_mutex_);
|
||||||
|
|
||||||
// Make sure the container is one where erasing items during iteration doesn't
|
using LiveHandles = absl::flat_hash_map<const HandleGLES,
|
||||||
// invalidate other iterators.
|
|
||||||
using LiveHandles = std::unordered_map<const HandleGLES,
|
|
||||||
LiveHandle,
|
LiveHandle,
|
||||||
HandleGLES::Hash,
|
HandleGLES::Hash,
|
||||||
HandleGLES::Equal>;
|
HandleGLES::Equal>;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user