pub unsafe extern "C" fn svcCreateThread(
thread: *mut Handle,
entrypoint: ThreadFunc,
arg: u32_,
stack_top: *mut u32_,
thread_priority: s32,
processor_id: s32,
) -> ResultExpand description
Multithreading
§*
- Creates a new thread.
§Arguments
-
thread(direction out) - The thread handle -
entrypoint- The function that will be called first upon thread creation -
arg- The argument passed toentrypoint -
stack_top- The top of the thread’s stack. Must be 0x8 bytes mem-aligned. -
thread_priority- Low values gives the thread higher priority. For userland apps, this has to be within the range [0x18;0x3F] -
processor_id- The id of the processor the thread should be ran on. Those are labelled starting from 0. For old 3ds it has to be <2, and for new 3DS <4.
-
Value -1 means all CPUs and -2 read from the Exheader.
-
The processor with ID 1 is the system processor.
-
To enable multi-threading on this core you need to call APT_SetAppCpuTimeLimit at least once with a non-zero value.
-
Since a thread is considered as a waitable object, you can use svcWaitSynchronization and svcWaitSynchronizationN to join with it.
-
Note: The kernel will clear the
stack_top'saddress low 3 bits to make sure it is 0x8-bytes aligned. /