summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-12-15 06:28:12 +0100
committerGitHub <noreply@github.com>2018-12-15 06:28:12 +0100
commit2f2fc47af23708f4a79c1e3b554aafd84a32f7db (patch)
tree02114974dac4e65b2a1a011c7cad68b32a6a6a47 /src/common
parentMerge pull request #1902 from lioncash/audio (diff)
parentsvc: Avoid incorrect fast yield condition (diff)
downloadyuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar.gz
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar.bz2
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar.lz
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar.xz
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.tar.zst
yuzu-2f2fc47af23708f4a79c1e3b554aafd84a32f7db.zip
Diffstat (limited to 'src/common')
-rw-r--r--src/common/thread_queue_list.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/common/thread_queue_list.h b/src/common/thread_queue_list.h
index 133122c5f..e7594db68 100644
--- a/src/common/thread_queue_list.h
+++ b/src/common/thread_queue_list.h
@@ -49,6 +49,22 @@ struct ThreadQueueList {
return T();
}
+ template <typename UnaryPredicate>
+ T get_first_filter(UnaryPredicate filter) const {
+ const Queue* cur = first;
+ while (cur != nullptr) {
+ if (!cur->data.empty()) {
+ for (const auto& item : cur->data) {
+ if (filter(item))
+ return item;
+ }
+ }
+ cur = cur->next_nonempty;
+ }
+
+ return T();
+ }
+
T pop_first() {
Queue* cur = first;
while (cur != nullptr) {