31 lines
		
	
	
		
			826 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			826 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package eval.luv;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@:forward
							 | 
						||
| 
								 | 
							
								abstract ThreadPoolRequest(Request) to Request {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
									Thread pool.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									@see https://aantron.github.io/luv/luv/Luv/Thread_pool
							 | 
						||
| 
								 | 
							
								**/
							 | 
						||
| 
								 | 
							
								extern class ThreadPool {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static function createRequest():ThreadPoolRequest;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Schedules a function to be called by a thread in the thread pool.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										`work` is the function that will be called in the thread pool.
							 | 
						||
| 
								 | 
							
										`callback` will be called by the `loop` after `work` completes, or
							 | 
						||
| 
								 | 
							
										immediately, in case there is an error scheduling `work`.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function queueWork(loop:Loop, ?request:ThreadPoolRequest, work:()->Void, callback:(result:Result<Result.NoData>)->Void):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										Sets thread pool size.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										This function should be called as soon during process startup as possible.
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									static function setSize(size:Int, ?ifNotAlreadySet:Bool):Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |