<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yuzu/src/common/thread.cpp, branch main</title>
<subtitle>Nintendo Switch emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/'/>
<entry>
<title>common: use SetThreadDescription API for thread names</title>
<updated>2023-10-20T15:41:29+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-10-20T15:41:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=59b62c6507cdde382c25e135f4ca082aa3f964cb'/>
<id>59b62c6507cdde382c25e135f4ca082aa3f964cb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: Fix tests.</title>
<updated>2022-06-27T23:10:55+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2021-11-28T11:21:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=9cafb0d91266210dab2c72e484b493bceae1cb02'/>
<id>9cafb0d91266210dab2c72e484b493bceae1cb02</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Core/Common: Corrections to core timing and add critical priority.</title>
<updated>2022-06-27T23:10:55+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2021-11-27T19:31:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=a2d29412cbda3e0dc57c49c5d4c098e8ba73cbb5'/>
<id>a2d29412cbda3e0dc57c49c5d4c098e8ba73cbb5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: add missing SPDX tags</title>
<updated>2022-04-28T16:24:11+00:00</updated>
<author>
<name>Andrea Pappacoda</name>
<email>andrea@pappacoda.it</email>
</author>
<published>2022-04-28T16:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=01cf05bc75b1e47beb08937439f3ed9339e7b254'/>
<id>01cf05bc75b1e47beb08937439f3ed9339e7b254</id>
<content type='text'>
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
</pre>
</div>
</content>
</entry>
<entry>
<title>common: Move error handling to error.cpp/h</title>
<updated>2021-09-11T21:19:14+00:00</updated>
<author>
<name>Morph</name>
<email>39850852+Morph1984@users.noreply.github.com</email>
</author>
<published>2021-09-08T18:36:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=290afc00d36bbdcdc67d66a4586fd2f188734ad3'/>
<id>290afc00d36bbdcdc67d66a4586fd2f188734ad3</id>
<content type='text'>
This allows us to avoid implicitly including &lt;string&gt; every time common_funcs.h is included.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows us to avoid implicitly including &lt;string&gt; every time common_funcs.h is included.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix thread naming on Linux, which limits names to 15 bytes.</title>
<updated>2020-08-06T03:34:49+00:00</updated>
<author>
<name>comex</name>
<email>comexk@gmail.com</email>
</author>
<published>2020-08-02T17:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=d37f0b29e26b0e6f655f801423ae6ba4f77fa9df'/>
<id>d37f0b29e26b0e6f655f801423ae6ba4f77fa9df</id>
<content type='text'>
- 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!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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!
</pre>
</div>
</content>
</entry>
<entry>
<title>Clang Format.</title>
<updated>2020-06-27T15:36:14+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2020-05-08T22:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=467d43570e10b98fa33067352d35fe62ceb3cb9e'/>
<id>467d43570e10b98fa33067352d35fe62ceb3cb9e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>General: Tune the priority of main emulation threads so they have higher priority than less important helper threads.</title>
<updated>2020-06-27T15:36:09+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2020-04-05T13:48:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=528b19a84287167d7699465e495b196d216b99db'/>
<id>528b19a84287167d7699465e495b196d216b99db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>General: Recover Prometheus project from harddrive failure</title>
<updated>2020-06-27T15:35:06+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2020-02-25T02:04:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=e31425df3877636c098ec7426ebd2067920715cb'/>
<id>e31425df3877636c098ec7426ebd2067920715cb</id>
<content type='text'>

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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

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.
</pre>
</div>
</content>
</entry>
<entry>
<title>common: Port some changes from dolphin (#5127)</title>
<updated>2020-04-01T00:58:42+00:00</updated>
<author>
<name>Vitor K</name>
<email>vitor-kiguchi@hotmail.com</email>
</author>
<published>2020-03-25T19:33:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/yuzu/commit/?id=bd0c56c6e7ad506d7123c7e3aca85bd037275a5c'/>
<id>bd0c56c6e7ad506d7123c7e3aca85bd037275a5c</id>
<content type='text'>
* 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 &lt;mathew1800@gmail.com&gt;
Co-authored-by: Shawn Hoffman &lt;godisgovernment@gmail.com&gt;
Co-authored-by: Sepalani &lt;sepalani@hotmail.fr&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;mathew1800@gmail.com&gt;
Co-authored-by: Shawn Hoffman &lt;godisgovernment@gmail.com&gt;
Co-authored-by: Sepalani &lt;sepalani@hotmail.fr&gt;
</pre>
</div>
</content>
</entry>
</feed>
