Changes

772 bytes removed ,  12:46, 7 April 2016
m
All of this is already written on the Multi-threading page
Line 1,275: Line 1,275:     
Lastly, the kernel disables the specified (B/W)RP, then writes the value parameter / loaded contextID to the (B/W)VR, then writes the input control value to the (B/W)CR.
 
Lastly, the kernel disables the specified (B/W)RP, then writes the value parameter / loaded contextID to the (B/W)VR, then writes the input control value to the (B/W)CR.
  −
= Threads =
  −
For svcCreateThread the input address used for Entrypoint_Param and StackTop are normally the same, however these can be arbitrary. For the main thread the Entrypoint_Param is value 0.
  −
  −
Using CloseHandle() with a KThread handle will terminate the specified thread, only if the reference count reaches 0.
  −
  −
Lower priority values give the thread higher priority. For userland apps, priorities between 0x18 and 0x3F are allowed. The priority of the app's main thread seems to be 0x30.
  −
  −
The thread scheduler is cooperative, therefore if a thread takes up all the CPU time (for example if it enters an endless loop), all the other threads that run on the same CPU core won't get a chance to run. The main way of yielding another thread is using an address arbiter.
      
= Memory Mapping =
 
= Memory Mapping =
549

edits