Multi-threading: Difference between revisions
m →Threads |
mNo edit summary |
||
Line 11: | Line 11: | ||
Each process has a separate handle-table, the size of which is stored in the kernel capability descriptor. The handles in a handle-table can't be used in the context of other processes, since those handles don't exist in other handle-tables. | Each process has a separate handle-table, the size of which is stored in the kernel capability descriptor. The handles in a handle-table can't be used in the context of other processes, since those handles don't exist in other handle-tables. | ||
0xFFFF8001 is a handle alias for the current | 0xFFFF8001 is a handle alias for the current process. | ||
Calling svcBreak on retail will only terminate the process which called this SVC. | Calling svcBreak on retail will only terminate the process which called this SVC. | ||
Line 101: | Line 101: | ||
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. | 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. | ||
0xFFFF8000 is a handle alias for the currently active thread. | |||
== Usage == | == Usage == |