forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			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.
 | 
