B ´œ˜|Ÿïã @ s¤ d dl mZ d dlZd dlZd dlmZ d dlmZ ddlm Z dZ ejdkrbG d d „ d e eƒZn6yd dl Z W n ek r‚ Y nX dZ G dd „ d e ƒZd d gZdS )é )ÚannotationsN)ÚABC)Úcasté )ÚBaseFileLockFÚwin32c @ s e Zd ZdZdS )ÚUnixFileLockzHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.N)Ú__name__Ú __module__Ú__qualname__Ú__doc__© r r ú?/opt/alt/python37/lib/python3.7/site-packages/filelock/_unix.pyr s r Tc @ s, e Zd ZdZddœdd„Zddœdd„ZdS ) r zHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.ÚNone)Úreturnc C sb t jt jB t jB }t | j|¡}yt |tjtj B ¡ W n t k rV t |¡ Y nX || _d S )N) ÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenZ _lock_fileÚfcntlÚflockZLOCK_EXZLOCK_NBÚOSErrorÚcloseÚ _lock_file_fd)ÚselfZ open_modeÚfdr r r Ú_acquire s zUnixFileLock._acquirec C s. t t| jƒ}d | _t |tj¡ t |¡ d S )N)r Úintr r r ZLOCK_UNr r )r r r r r Ú_release&