summaryrefslogtreecommitdiffstats
path: root/src/common/threadsafe_queue.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* threadsafe_queue: Fix deadlockyzct123452021-08-131-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.
* common/threadsafe_queue: Provide Wait() method.Markus Wick2021-04-071-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.
* common: Make use of [[nodiscard]] where applicableLioncash2020-08-151-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.
* common: SPSCQueue: Notify after incrementing queue size.bunnei2019-12-171-2/+9
|
* general: Use deducation guides for std::lock_guard and std::unique_lockLioncash2019-04-011-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.
* Adressed review commentsB3n302019-02-151-6/+7
|
* threadsafe_queue: Add WaitIfEmpty and use it in loggingB3n302019-02-151-1/+18
|
* threadsafe_queue: Use std::size_t for representing sizeLioncash2019-02-131-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.
* threadsafe_queue: Remove NeedSize template parameterLioncash2019-02-131-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.
* remove polymorphism issueB3n302018-07-291-2/+30
|
* CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302018-01-091-0/+122
* CoreTiming: New CoreTiming; Add Test for CoreTiming