mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 20:51:26 +00:00 
			
		
		
		
	
		
			
	
	
		
			16 lines
		
	
	
	
		
			288 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			16 lines
		
	
	
	
		
			288 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import struct, fcntl, FCNTL | ||
|  | 
 | ||
|  | def writelock(f): | ||
|  | 	_lock(f, FCNTL.F_WRLCK) | ||
|  | 
 | ||
|  | def readlock(f): | ||
|  | 	_lock(f, FCNTL.F_RDLCK) | ||
|  | 
 | ||
|  | def unlock(f): | ||
|  | 	_lock(f, FCNTL.F_UNLCK) | ||
|  | 
 | ||
|  | def _lock(f, op): | ||
|  | 	dummy = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW, | ||
|  | 			    struct.pack('2h8l', op, | ||
|  | 					0, 0, 0, 0, 0, 0, 0, 0, 0)) |