Changes

1,542 bytes added ,  17:49, 25 May 2015
Created page with "This page is a work in progress. Put everything related to multi-threading here, threads, synchronization, multi-core support, etc. The Nintendo 3DS offers support for threading..."
This page is a work in progress. Put everything related to multi-threading here, threads, synchronization, multi-core support, etc.

The Nintendo 3DS offers support for threading through use of [[SVC]] calls.

= Threads =

For Kernel implementation details, see [[KThread]].

Though it is possible to run multi-threaded programs, running those on different cores is not possible "as-is". One core is always dedicated to the OS, hence you will never get 100% of both cores.

== Usage ==

=== CreateThread ===

=== ExitThread ===

=== SleepThread ===

=== GetThreadPriority ===

=== SetThreadPriority ===

=== OpenThread ===

=== GetProcessIdOfThread ===

=== GetThreadId ===

=== GetThreadInfo ===

=== GetThreadContext ===

== Core affinity ==

=== GetThreadAffinityMask ===

=== SetThreadAffinityMask ===

=== GetThreadIdealProcessor ===

=== SetThreadIdealProcessor ===

== Debug ==

=== GetThreadList ===

=== GetDebugThreadContext ===

=== SetDebugThreadContext ===

=== GetDebugThreadParam ===

= Synchronization =

Most synchronization systems seem to have both a "normal" and "light-weight" version

== Mutex (normal) ==

=== CreateMutex ===

/!\ It seems that the mutex will not be available once the thread that created it is destroyed

=== ReleaseMutex ===

== Ciritical Section (light-weight mutex) ==

== CriticalSection::Initialize ==

Same thread ownership as a mutex ?

=== CriticalSection::Enter ===

=== CriticalSection::Leave ===

== Semaphore ==

== Light Semaphore ? ==

Does it exist ?

== Event ==

== Light Event ==
48

edits