summaryrefslogtreecommitdiffstats
path: root/src/common/threadsafe_queue.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-04-28chore: add missing SPDX tagsAndrea Pappacoda1-3/+2
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
2022-04-07common: Replace lock_guard with scoped_lockMerry1-2/+2
2021-09-16threadsafe_queue: Add std::stop_token overload to PopWaitameerj1-5/+22
Useful for jthreads which make use of the threadsafe queues.
2021-08-13threadsafe_queue: Fix deadlockyzct123451-6/+4
This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader. This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples.
2021-04-07common/threadsafe_queue: Provide Wait() method.Markus Wick1-1/+9
It shall block until there is something to consume in the queue. And use it for the GPU emulation instead of the spin loop. This is only in booting the emulator, however in BOTW this is the case for about 1 second.
2020-08-15common: Make use of [[nodiscard]] where applicableLioncash1-6/+6
Now that clang-format makes [[nodiscard]] attributes format sensibly, we can apply them to several functions within the common library to allow the compiler to complain about any misuses of the functions.
2019-12-17common: SPSCQueue: Notify after incrementing queue size.bunnei1-2/+9
2019-04-01general: Use deducation guides for std::lock_guard and std::unique_lockLioncash1-2/+2
Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
2019-02-15Adressed review commentsB3n301-6/+7
2019-02-15threadsafe_queue: Add WaitIfEmpty and use it in loggingB3n301-1/+18
2019-02-13threadsafe_queue: Use std::size_t for representing sizeLioncash1-7/+6
Makes it consistent with the regular standard containers in terms of size representation. This also gets rid of dependence on our own type aliases, removing the need for an include.
2019-02-13threadsafe_queue: Remove NeedSize template parameterLioncash1-13/+11
The necessity of this parameter is dubious at best, and in 2019 probably offers completely negligible savings as opposed to just leaving this enabled. This removes it and simplifies the overall interface.
2018-07-29remove polymorphism issueB3n301-2/+30
2018-01-09CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n301-0/+122
* CoreTiming: New CoreTiming; Add Test for CoreTiming