mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	Changed alot of things.
This commit is contained in:
		
							parent
							
								
									a5a0523e5a
								
							
						
					
					
						commit
						3513d5390c
					
				
					 2016 changed files with 336930 additions and 9 deletions
				
			
		
							
								
								
									
										55
									
								
								node_modules/ws/lib/limiter.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								node_modules/ws/lib/limiter.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,55 @@ | |||
| 'use strict'; | ||||
| 
 | ||||
| const kDone = Symbol('kDone'); | ||||
| const kRun = Symbol('kRun'); | ||||
| 
 | ||||
| /** | ||||
|  * A very simple job queue with adjustable concurrency. Adapted from | ||||
|  * https://github.com/STRML/async-limiter
 | ||||
|  */ | ||||
| class Limiter { | ||||
|   /** | ||||
|    * Creates a new `Limiter`. | ||||
|    * | ||||
|    * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed | ||||
|    *     to run concurrently | ||||
|    */ | ||||
|   constructor(concurrency) { | ||||
|     this[kDone] = () => { | ||||
|       this.pending--; | ||||
|       this[kRun](); | ||||
|     }; | ||||
|     this.concurrency = concurrency || Infinity; | ||||
|     this.jobs = []; | ||||
|     this.pending = 0; | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|    * Adds a job to the queue. | ||||
|    * | ||||
|    * @param {Function} job The job to run | ||||
|    * @public | ||||
|    */ | ||||
|   add(job) { | ||||
|     this.jobs.push(job); | ||||
|     this[kRun](); | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|    * Removes a job from the queue and runs it if possible. | ||||
|    * | ||||
|    * @private | ||||
|    */ | ||||
|   [kRun]() { | ||||
|     if (this.pending === this.concurrency) return; | ||||
| 
 | ||||
|     if (this.jobs.length) { | ||||
|       const job = this.jobs.shift(); | ||||
| 
 | ||||
|       this.pending++; | ||||
|       job(this[kDone]); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| module.exports = Limiter; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue