mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10:07 +00:00 
			
		
		
		
	
		
			
	
	
		
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/**********************************************************************
							 | 
						||
| 
								 | 
							
								* 
							 | 
						||
| 
								 | 
							
								* Deferred worker API
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* NOTE: at this point this only contains a worker queue...
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								**********************************************************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// object to register all the worker queues...
							 | 
						||
| 
								 | 
							
								var WORKERS = {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/********************************************************* Workers ***/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// get/create a named worker queue...
							 | 
						||
| 
								 | 
							
								function getWorkerQueue(name, no_auto_start){
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// create a new worker queue...
							 | 
						||
| 
								 | 
							
									if(WORKERS[name] == null){
							 | 
						||
| 
								 | 
							
										var queue = makeDeferredsQ()
							 | 
						||
| 
								 | 
							
										WORKERS[name] = queue
							 | 
						||
| 
								 | 
							
										// start if needed...
							 | 
						||
| 
								 | 
							
										if(!no_auto_start){
							 | 
						||
| 
								 | 
							
											queue.start()
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// return existing worker queue...
							 | 
						||
| 
								 | 
							
									} else {
							 | 
						||
| 
								 | 
							
										var queue = WORKERS[name]
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return queue
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// kill all worker queues...
							 | 
						||
| 
								 | 
							
								function killAllWorkers(){
							 | 
						||
| 
								 | 
							
									for(var k in WORKERS){
							 | 
						||
| 
								 | 
							
										if(WORKERS[k].isWorking()){
							 | 
						||
| 
								 | 
							
											console.log('Worker: Stopped:', k)
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										WORKERS[k].kill()
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									WORKERS = {}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**********************************************************************
							 | 
						||
| 
								 | 
							
								* vim:set ts=4 sw=4 :                                                */
							 |