Search.setIndex({docnames:["NEWS","apiref","index","theory","using"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["NEWS.rst","apiref.rst","index.rst","theory.rst","using.rst"],objects:{"flufl.lock":[[1,0,1,"","AlreadyLockedError"],[1,1,1,"","Lock"],[1,0,1,"","LockError"],[1,1,1,"","LockState"],[1,0,1,"","NotLockedError"],[1,0,1,"","TimeOutError"]],"flufl.lock.Lock":[[1,2,1,"","details"],[1,2,1,"","expiration"],[1,2,1,"","hostname"],[1,2,1,"","is_locked"],[1,2,1,"","lifetime"],[1,3,1,"","lock"],[1,2,1,"","lockfile"],[1,3,1,"","refresh"],[1,2,1,"","retry_errnos"],[1,2,1,"","state"],[1,3,1,"","unlock"]],"flufl.lock.LockState":[[1,4,1,"","ours"],[1,4,1,"","ours_expired"],[1,4,1,"","stale"],[1,4,1,"","theirs_expired"],[1,4,1,"","unknown"],[1,4,1,"","unlocked"]]},objnames:{"0":["py","exception","Python exception"],"1":["py","class","Python class"],"2":["py","property","Python property"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:exception","1":"py:class","2":"py:property","3":"py:method","4":"py:attribute"},terms:{"0":[1,2,3,4],"00":4,"01":2,"03":2,"04":2,"05":2,"06":2,"07":2,"08":2,"09":2,"1":[1,2,4],"10":[2,4],"100":0,"1026403":0,"11":2,"12":2,"1263794":0,"13":0,"15":[1,2,4],"16":0,"17":0,"18":0,"19":2,"2":[1,2,3,4],"20":2,"2004":2,"2010":2,"2011":2,"2012":2,"2014":2,"2015":2,"2017":2,"2020":2,"21":2,"22":2,"25":2,"26":2,"27":2,"29":2,"2to3":0,"3":[1,2,4],"30":[2,4],"31":2,"4":[1,2,4],"5":[1,2,4],"6":[0,1,2,4],"680136":0,"7":0,"8":0,"827052":0,"838338":0,"872096":0,"882261":0,"9":0,"977999":0,"break":[0,1,2,4],"case":[1,3,4],"catch":0,"class":1,"default":[0,1,3,4],"do":1,"enum":[0,3],"final":0,"function":[0,4],"import":[1,4],"int":1,"long":[0,1,3,4],"new":[1,2],"public":0,"return":[1,3],"short":[1,3,4],"switch":0,"throw":0,"true":[0,1,3,4],"try":[0,1,3,4],"while":[0,3,4],A:[0,1,2,3,4],As:3,If:[0,1,2,3,4],In:[0,1,3,4],It:[0,1,2,3,4],On:3,That:3,The:[0,1,2,3,4],Then:1,There:[1,3,4],These:[0,3],To:[3,4],__all__:0,__del__:0,_lockfil:1,_releasetim:0,about:[1,3,4],abov:3,access:3,accquir:1,acquir:[1,2,4],acquisit:[1,2,3],across:3,act:3,activ:3,actual:3,ad:0,add:0,addit:0,adjust:0,after:[3,4],again:3,agent:[1,3],algorithm:1,all:[0,1,3],allow:0,along:[0,2],alphanumer:4,alreadi:[1,3,4],alreadylockederror:[1,3,4],also:[0,1,3,4],although:3,alwai:[0,3,4],amount:3,an:[0,1,3,4],ani:[3,4],annot:0,anoth:[1,3,4],answer:3,anywai:0,apach:0,api:2,appear:4,applic:1,appropri:1,approxim:1,ar:[0,1,3,4],argument:[0,4],around:3,ask:[3,4],assum:3,assumpt:[1,3],atim:3,atom:[1,3],attempt:[1,3,4],attribut:[0,3],author:2,automat:0,avail:2,avoid:[1,4],bar:[0,1,4],barri:2,base:[1,2,4],basic:3,becaus:[1,3,4],been:[0,3],befor:[1,3],behavior:[2,3],being:1,best:4,better:0,between:3,bit:[3,4],block:[1,2,3],bool:1,boost:0,both:0,branch:2,broken:[1,3],bug:[0,2],built:0,bzr:0,c:2,calcul:3,call:[1,2,3,4],can:[0,1,2,3],cannot:[3,4],caret:[1,4],caus:1,caveat:3,chain:0,chang:[0,3,4],charact:[1,4],check:[1,3],cheeseshop:0,claim:[0,1,2,4],claim_fil:4,classifi:0,clean:3,cleanli:3,clear:0,clock:[1,4],clone:2,close:[0,3],code:[0,1,2,3,4],com:2,come:4,common:3,compat:0,concaten:4,condit:[0,1,3],configur:0,consid:3,consist:3,constructor:[1,3,4],consult:3,contact:2,contain:[1,3,4],content:[3,4],context:[0,4],continu:3,coordin:[1,3],copi:2,correctli:0,corrupt:[1,4],could:[3,4],count:[1,3],coverag:0,creat:[1,2,3],creation:3,crufti:0,current:[1,3,4],data:[1,3,4],datetim:[0,1,4],deal:0,debian:0,decid:3,defin:[0,3],defunct:3,delet:0,depend:3,describ:[1,3],descript:[0,1,3],destin:3,detail:[0,1],determin:3,develop:2,dictat:3,differ:3,directori:0,disown:0,distribut:[0,1,4],doc:0,doctest:0,document:[0,1],doe:[1,4],domain:4,don:[0,1,3,4],drop:0,due:[0,1],dure:1,e:[1,3,4],each:1,earlier:2,easi:4,either:[1,3],elaps:1,elimin:3,els:[0,4],embodi:4,end:[1,4],enforc:4,enoent:[0,3],ensur:3,entir:1,enumer:4,environ:[0,1,4],equal:3,errno:[0,1,3],error:[1,4],especi:[1,3],estal:[0,3],even:[3,4],ever:[1,3],everi:3,everywher:[0,4],evid:3,exceed:3,except:[0,2,3,4],exist:[0,1,3,4],exit:[3,4],expect:[1,3,4],expir:[0,1,3,4],explicitli:[1,3,4],expos:0,extend:[1,3,4],extens:2,extern:[1,3],extra_sleep:4,face:3,fact:3,fail:[1,3],fairli:3,fals:[1,4],few:3,file:[0,1],filenam:4,find:3,first:[1,3,4],fix:0,flag:[0,1],flake8:0,flufl:[1,3],flufllock:2,follow:0,forev:[1,4],format:0,found:0,fp:4,fresh:[1,4],from:[1,3,4],fs:[1,3],full:1,fulli:4,futur:[1,3],g:[1,3,4],gain:3,gener:3,get:[0,3,4],getfqdn:3,getpid:4,getter:0,git:2,gitlab:2,give:0,given:1,gl:0,gnu:[1,3],good:[1,3,4],goss:0,grab:2,guarante:3,guess:4,guid:2,ha:[0,1,3,4],had:4,hang:[1,3,4],happen:[0,1,3],hard:[1,3],hasn:[3,4],have:[0,1,2,3,4],help:[0,1,4],here:[1,3,4],hold:[1,4],home:2,host:[0,1,2,4],hostnam:[1,3,4],how:1,howev:[1,3,4],http:2,i:[3,4],id:[1,3,4],ident:0,immedi:3,implement:[0,1,3,4],implicit:3,implicitli:[1,3,4],imposs:[0,1],improv:0,includ:0,incorpor:[1,3],increas:[1,3],indic:[1,3],infer:[1,4],infinit:0,influenc:1,inform:[1,4],infrastructur:4,ini:0,innocu:3,insight:[1,3,4],instal:2,instanti:[3,4],instead:0,integ:[0,1,3],intend:[3,4],intent:4,interfer:[1,3],intern:3,interv:1,involv:3,io:2,is_lock:[1,3,4],isn:[1,3],issu:2,its:[0,1,3,4],just:3,keep:[1,3],keyword:0,know:4,known:3,lai:1,later:3,latest:2,least:4,leav:3,left:1,length:[1,3,4],let:3,librari:[0,1,2],licens:0,life:1,lifetim:[0,1,2,4],like:2,link:[1,3],linux:[0,1,3],list:1,littl:4,ll:[1,4],lock:1,lockerror:1,lockfil:[0,1,3,4],lockstat:[0,1,3,4],log:[0,3],longer:[0,1,3,4],look:[0,3],lp:0,machin:[1,3,4],made:[1,3],mai:[1,3,4],mailman:0,make:[0,1,3,4],manag:[0,4],manifest:0,manpag:[1,3],master:2,match:[1,4],maximum:[1,4],maxsiz:3,mean:[1,3],mechan:1,mention:3,mess:3,method:[0,3],might:4,mind:3,miss:0,modern:0,modifi:3,modul:1,more:[0,1,4],mtime:3,much:4,must:[0,4],name:[0,1,3,4],natur:1,need:[1,3,4],never:[3,4],newer:2,next:3,nf:[0,1,3,4],nicer:0,none:1,nose2:0,note:1,notlockederror:[1,4],now:[0,1,3,4],number:[0,1,3,4],numer:0,o_excl:[1,3],object:[1,3,4],obsolet:0,occur:[0,3],offici:0,older:0,onc:[3,4],one:[0,3,4],onli:[0,3],open:[1,3,4],oper:[0,3],option:[1,3],org:2,origin:[1,4],os:4,oserror:3,other:[1,2,3,4],otherwis:[0,1,3],our:[1,3,4],ours_expir:[1,4],out:[0,1],outsid:[1,3],over:3,own:[1,2,3,4],ownership:[1,3],packag:[0,2,3,4],page:0,paramet:[0,1],parent:4,part:0,pass:4,path:[1,3,4],perform:[1,3],period:3,physic:3,pick:[1,4],pid:[1,3,4],pip:2,platform:3,plu:3,plugin:0,point:3,polici:[1,4],portabl:1,posix:[1,2,3,4],possibl:[0,1,3,4],present:[0,3],prevent:3,previous:[0,3],print:4,probabl:1,problemat:0,process:[1,3,4],program:[1,3],properli:[0,1,4],properti:[0,1,3],protect:3,protocol:[0,4],provid:[0,1,3,4],purg:0,py:0,python:[0,2],qualifi:4,qualiti:0,queri:4,quit:3,race:[0,1,3],rais:[1,3],random:[1,3],re:3,read:[0,1,3,4],readthedoc:2,realiz:[1,4],realli:4,reason:3,record:[3,4],reduc:3,refer:[0,2],refresh:[0,1,2,3],regardless:1,rel:[1,3],releas:[1,3,4],reli:[1,3],rememb:3,remov:[0,3],renam:0,reorgan:0,report:[2,4],repositori:2,repr:0,repres:[1,3],reserv:4,reset:1,resourc:[1,3],restrict:4,retain:[1,4],retri:[0,1],retry_errno:[0,1],run:[0,1,3,4],s:[0,1,3,4],safe:[1,3,4],sai:3,same:[1,3,4],sdist:0,second:[0,1,3,4],see:[3,4],sens:3,sep:0,separ:[0,1,2],sequenc:0,server:[0,3],set:[0,1,3],setup:0,setup_help:0,sever:3,share:3,should:[1,3,4],simpl:2,simul:3,simulate_process_crash:4,sinc:[0,3],sleep:[3,4],small:[0,3],so:[0,1,3,4],socket:3,solut:[1,3],some:[0,1,3,4],sourc:3,specif:[1,3],specifi:[1,4],stale:[1,3,4],standard:3,start:3,stat:[1,3],state:[0,1,2,3],statu:1,steal:3,step:3,stephen:0,still:[3,4],stolen:[1,4],str:1,strip:4,subproc:0,succe:1,succeed:1,success:[1,3],suit:0,support:[0,1,4],suppos:0,sure:[1,4],sustain:0,sy:3,synchron:[1,3,4],system:[0,1,2,3,4],t0:4,t1:4,t:[0,1,3,4],t_broken:4,take_possess:0,tarbal:0,task:[1,3],technic:[0,2,4],tell:4,temporari:1,temporary_lockfil:4,test:[0,1,4],than:[1,3,4],theirs_expir:[1,4],theori:0,therefor:1,thi:[0,1,2,3,4],thing:3,third:3,those:0,though:3,thought:1,through:3,thu:3,time:[1,3,4],timedelta:[0,1,4],timeout:[1,2,3,4],timeouterror:[1,3],timestamp:3,too:[0,1,3,4],total:3,touch:3,tox:0,trampl:[1,4],transfer_to:0,tri:3,tupl:1,two:3,type:[0,1],typeerror:0,ultim:3,unavail:4,unbalanc:1,unchang:0,uncleanli:[3,4],uncondition:[0,1],under:[1,3],undocu:0,unexpect:0,union:1,uniqu:[1,3,4],unknown:[1,4],unless:1,unlink:3,unlock:[0,1,3,4],until:[1,3,4],up:[1,3,4],us:[0,1,2,3],user:[1,3,4],valu:[1,4],ve:3,version:0,vertic:[0,1,4],via:2,wa:[1,3,4],wai:3,wait:3,waitfor:4,want:[0,1,3,4],warsaw:2,we:[0,1,3,4],web:1,wedg:[1,4],weird:3,were:0,what:[1,4],whatev:1,when:[1,3,4],whenev:1,where:[0,3,4],whether:[3,4],which:[0,1,3,4],why:3,window:[0,1,3,4],within:3,without:[0,1,3],won:0,work:[0,3],worri:3,write:[1,3],written:[3,4],yet:[3,4],you:[0,1,2,3,4],your:[1,2,3,4]},titles:["NEWS for flufl.lock","API Reference","flufl.lock - An NFS-safe file lock","Technical details","Using the flufl.lock library"],titleterms:{"0":0,"01":0,"03":0,"04":0,"05":0,"06":0,"07":0,"08":0,"09":0,"1":0,"10":0,"11":0,"12":0,"15":0,"19":0,"2":0,"20":0,"2010":0,"2011":0,"2012":0,"2014":0,"2015":0,"2017":0,"2020":0,"21":0,"22":0,"25":0,"26":0,"27":0,"29":0,"3":0,"30":0,"31":0,"4":0,"5":0,"break":3,"new":0,acquir:3,acquisit:4,an:2,api:[0,1],behavior:0,block:4,can:4,claim:3,content:2,copyright:2,creat:4,detail:[2,3,4],document:2,earlier:0,except:1,extens:3,file:[2,3,4],flufl:[0,2,4],librari:4,lifetim:3,lock:[0,2,3,4],nf:2,other:0,project:2,refer:1,refresh:4,requir:2,safe:2,separ:4,state:4,tabl:2,technic:3,us:4}})