summaryrefslogtreecommitdiffstats
path: root/src/common/thread.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* chore: add missing SPDX tagsAndrea Pappacoda2022-04-281-3/+3
| | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
* common: Move error handling to error.cpp/hMorph2021-09-111-3/+3
| | | | This allows us to avoid implicitly including <string> every time common_funcs.h is included.
* Fix thread naming on Linux, which limits names to 15 bytes.comex2020-08-061-0/+12
| | | | | | | | | | | | | | | - In `SetCurrentThreadName`, when on Linux, truncate to 15 bytes, as (at least on glibc) `pthread_set_name_np` will otherwise return `ERANGE` and do nothing. - Also, add logging in case `pthread_set_name_np` returns an error anyway. This is Linux-specific, as the Apple and BSD versions of `pthread_set_name_np return `void`. - Change the name for CPU threads in multi-core mode from "yuzu:CoreCPUThread_N" (19 bytes) to "yuzu:CPUCore_N" (14 bytes) so it fits into the Linux limit. Some other thread names are also cut off, but I didn't bother addressing them as you can guess them from the truncated versions. For a CPU thread, truncation means you can't see which core it is!
* Clang Format.Fernando Sahmkow2020-06-271-15/+15
|
* General: Tune the priority of main emulation threads so they have higher priority than less important helper threads.Fernando Sahmkow2020-06-271-0/+46
|
* General: Recover Prometheus project from harddrive failure Fernando Sahmkow2020-06-271-0/+6
| | | | | | | This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
* common: Port some changes from dolphin (#5127)Vitor K2020-04-011-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * IOFile: Make the move constructor and move assignment operator noexcept Certain parts of the standard library try to determine whether or not a transfer operation should either be a copy or a move. The prevalent notion of move constructors/assignment operators is that they should not throw, they simply move an already existing resource somewhere else. This is typically done with 'std::move_if_noexcept'. Like the name says, if a type's move constructor is noexcept, then the functions retrieves an r-value reference (for move semantics), or an l-value (for copy semantics) if it is not noexcept. As IOFile deletes the copy constructor and copy assignment operators, using IOFile with certain parts of the standard library can fail in unexcepted ways (especially when used with various container implementations). This prevents that. * fix various instances of -1 being assigned to unsigned types * do not assign in conditional statements * File/IOFile: Check _tfopen_s properly * common/file_util.cpp: address review comments Co-authored-by: Lioncash <mathew1800@gmail.com> Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com> Co-authored-by: Sepalani <sepalani@hotmail.fr>
* common/thread: Remove unused functionsLioncash2019-03-291-37/+0
| | | | | | | | | | Many of these functions are carried over from Dolphin (where they aren't used anymore). Given these have no use (and we really shouldn't be screwing around with OS-specific thread scheduler handling from the emulator, these can be removed. The function for setting the thread name is left, however, since it can have debugging utility usages.
* common/thread: Drop Hungarian notation on SetCurrentThreadName's parameterLioncash2018-11-221-7/+7
| | | | This is inconsistent with our coding style.
* common/thread: Remove SleepCurrentThread()Lioncash2018-11-221-11/+0
| | | | | | | This is also unused and superceded by standard functionality. The standard library provides std::this_thread::sleep_for(), which provides a much more flexible interface, as different time units can be used with it.
* common/thread: Remove unused CurrentThreadId()Lioncash2018-11-221-10/+0
| | | | | | This is an old function that's no longer necessary. C++11 introduced proper threading support to the language and a thread ID can be retrieved via std::this_thread::get_id() if it's ever needed.
* Support mingw cross-compileJannik Vogel2016-12-051-1/+1
|
* common: only FreeBSD has thread affinity compatible with LinuxJan Beich2016-10-281-1/+5
| | | | | | | | | | | src/common/thread.cpp:90:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'? cpu_set_t cpu_set; ^~~~~~~~~ cpuset_t /usr/include/sys/_cpuset.h:48:24: note: 'cpuset_t' declared here typedef struct _cpuset cpuset_t; ^ 1 error generated.
* common: define routines to set thread name on more BSDsJan Beich2016-10-281-2/+4
| | | | | | | src/common/thread.cpp:123:5: error: use of undeclared identifier 'pthread_setname_np' pthread_setname_np(pthread_self(), szThreadName); ^ 1 error generated.
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-2/+0
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-48/+32
|
* Common: Cleanup thread includes.Emmanuel Gil Peyrot2015-06-281-4/+13
|
* Fix MSVC-related #defines and add CMakeLists commentdarkf2014-12-301-3/+3
|
* Fix merge conflictsdarkf2014-12-301-2/+2
|\
| * License changepurpasmart962014-12-211-2/+2
| |
* | Fix MinGW builddarkf2014-11-291-8/+15
|/
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-191-3/+3
|
* common: Prune all redundant includesarchshift2014-09-091-1/+0
|
* Removed common/std_xyz, instead using the std headerarchshift2014-09-071-4/+2
|
* Use pthread_set_name_np() on OpenBSD.Anthony J. Bentley2014-08-081-1/+3
|
* fixed project includes to use new directory structurebunnei2014-04-091-2/+2
|
* got rid of 'src' folders in each sub-projectbunnei2014-04-091-0/+133