summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.h
diff options
context:
space:
mode:
authorGravatar bunnei2022-04-06 12:25:25 -0700
committerGravatar GitHub2022-04-06 12:25:25 -0700
commiteb8c8db8992b5c5027d172c859e214c722be3b56 (patch)
tree8ec80b645d6ddc680fec8c0454571075c9f1dc49 /src/core/hle/kernel/kernel.h
parentMerge pull request #8162 from german77/bombslinger (diff)
parenthle: service: nvdrv: Create a service thread where appropriate. (diff)
downloadyuzu-eb8c8db8992b5c5027d172c859e214c722be3b56.tar.gz
yuzu-eb8c8db8992b5c5027d172c859e214c722be3b56.tar.xz
yuzu-eb8c8db8992b5c5027d172c859e214c722be3b56.zip
Merge pull request #8122 from bunnei/improve-thread-usage
Improve usage of service host threads
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r--src/core/hle/kernel/kernel.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 4c68e96df..24e26fa44 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -271,9 +271,11 @@ public:
271 void ExitSVCProfile(); 271 void ExitSVCProfile();
272 272
273 /** 273 /**
274 * Creates an HLE service thread, which are used to execute service routines asynchronously. 274 * Creates a host thread to execute HLE service requests, which are used to execute service
275 * While these are allocated per ServerSession, these need to be owned and managed outside 275 * routines asynchronously. While these are allocated per ServerSession, these need to be owned
276 * of ServerSession to avoid a circular dependency. 276 * and managed outside of ServerSession to avoid a circular dependency. In general, most
277 * services can just use the default service thread, and not need their own host service thread.
278 * See GetDefaultServiceThread.
277 * @param name String name for the ServerSession creating this thread, used for debug 279 * @param name String name for the ServerSession creating this thread, used for debug
278 * purposes. 280 * purposes.
279 * @returns The a weak pointer newly created service thread. 281 * @returns The a weak pointer newly created service thread.
@@ -281,6 +283,14 @@ public:
281 std::weak_ptr<Kernel::ServiceThread> CreateServiceThread(const std::string& name); 283 std::weak_ptr<Kernel::ServiceThread> CreateServiceThread(const std::string& name);
282 284
283 /** 285 /**
286 * Gets the default host service thread, which executes HLE service requests. Unless service
287 * requests need to block on the host, the default service thread should be used in favor of
288 * creating a new service thread.
289 * @returns The a weak pointer for the default service thread.
290 */
291 std::weak_ptr<Kernel::ServiceThread> GetDefaultServiceThread() const;
292
293 /**
284 * Releases a HLE service thread, instructing KernelCore to free it. This should be called when 294 * Releases a HLE service thread, instructing KernelCore to free it. This should be called when
285 * the ServerSession associated with the thread is destroyed. 295 * the ServerSession associated with the thread is destroyed.
286 * @param service_thread Service thread to release. 296 * @param service_thread Service thread to release.