42 lines
1.2 KiB
ReStructuredText
42 lines
1.2 KiB
ReStructuredText
PR_SetConcurrency
|
|
=================
|
|
|
|
Creates extra virtual processor threads. Generally used with MP systems.
|
|
|
|
|
|
Syntax
|
|
------
|
|
|
|
.. code::
|
|
|
|
#include <prinit.h>
|
|
|
|
void PR_SetConcurrency(PRUintn numCPUs);
|
|
|
|
|
|
Parameter
|
|
~~~~~~~~~
|
|
|
|
:ref:`PR_SetConcurrency` has one parameter:
|
|
|
|
``numCPUs``
|
|
The number of extra virtual processor threads to be created.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
Setting concurrency controls the number of virtual processors that NSPR
|
|
uses to implement its ``M x N`` threading model. The ``M x N`` model is
|
|
not available on all host systems. On those where it is not available,
|
|
:ref:`PR_SetConcurrency` is ignored.
|
|
|
|
Virtual processors are actually\ *global* threads, each of which is
|
|
designed to support an arbitrary number of\ *local* threads. Since
|
|
global threads are scheduled by the host operating system, this model is
|
|
particularly applicable to multiprocessor architectures, where true
|
|
parallelism is possible. However, it may also prove advantageous on
|
|
uniprocessor systems to reduce the impact of having a locally scheduled
|
|
thread calling incidental blocking functions. In such cases, all the
|
|
threads being supported by the virtual processor will block, but those
|
|
assigned to another virtual processor will be unaffected.
|