forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			48 lines
		
	
	
		
			972 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			972 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package eval.luv; | ||
|  | 
 | ||
|  | /** | ||
|  | 	Read-write locks. | ||
|  | 
 | ||
|  | 	@see https://aantron.github.io/luv/luv/Luv/Rwlock | ||
|  | **/ | ||
|  | @:coreType abstract RwLock { | ||
|  | 	/** | ||
|  | 		Allocates and initializes a read-write lock. | ||
|  | 	**/ | ||
|  | 	static public function init():Result<RwLock>; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Cleans up a read-write lock. | ||
|  | 	**/ | ||
|  | 	public function destroy():Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Takes a read-write lock for reading (shared access). | ||
|  | 	**/ | ||
|  | 	public function rdLock():Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Tries to take a read-write lock for reading without blocking. | ||
|  | 	**/ | ||
|  | 	public function rdTryLock():Result<Result.NoData>; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Releases a read-write lock after it was taken for reading. | ||
|  | 	**/ | ||
|  | 	public function rdUnlock():Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Takes a read-write lock for writing (exclusive access). | ||
|  | 	**/ | ||
|  | 	public function wrLock():Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Tries to take a read-write lock for writing without blocking. | ||
|  | 	**/ | ||
|  | 	public function wrTryLock():Result<Result.NoData>; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Releases a read-write lock after it was taken for writing. | ||
|  | 	**/ | ||
|  | 	public function wrUnlock():Void; | ||
|  | } |