Ë ²Nðî .�ãóX—ddlZddlZddlZddlmZmZmZmZmZGd„d«Z d„Z d„Z y)éNé)ÚerrorÚhgÚobsoleteÚscmutilÚutilcó:—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z y ) Ú repoloaderz»Load repositories in background thread This is designed for a forking server. A cached repo cannot be obtained until the server fork()s a worker and the loader thread stops. cóè—|j«|_tj|¬«|_t j |¬«|_d|_tj«|_ d|_ y)N)Úmax)ÚmaxlenF) ÚcopyÚ_uirÚ lrucachedictÚ_cacheÚ collectionsÚdequeÚ_inqueueÚ _acceptingÚ threadingÚEventÚ _newentryÚ_thread)ÚselfÚuir s ú7usr/lib/python3.12/site-packages/mercurial/repocache.pyÚ__init__zrepoloader.__init__sQ€Ø—7‘7“9ˆŒÜ×'Ñ'¨FÔ3ˆŒ ô$×)Ñ)°Ô8ˆŒ ؈ŒÜ"Ÿ™Ó*ˆŒØˆ� ócóà—|jrJ‚|jjdk(ryd|_t j |j ¬«|_|jj«y)NrT)Útarget)rrr rrÚThreadÚ _mainloopÚstart©rs rr#zrepoloader.start'sQ€Ø—<’<ÐÐØ �=‰=× Ñ  1Ò $à ØˆŒÜ ×'Ñ'¨t¯~©~Ô>ˆŒ Ø � ‰ ×ÑÕrcó —|jsyd|_|jj«|jj «d|_|j j «|jj «y)NF)rrrÚsetÚjoinrÚclearrr$s rÚstopzrepoloader.stop0sZ€Ø�|Š|Ø ØˆŒØ �‰×ÑÔØ � ‰ ×ÑÔØˆŒ Ø � ‰ ×ÑÔØ � ‰ ×ÑÕrcón—|jj|«|jj«y)z6Request to load the specified repository in backgroundN)rÚappendrr&©rÚpaths rÚloadzrepoloader.load:s$€à � ‰ ×јTÔ"Ø �‰×ÑÕrcó°—|jr/|jj«rtjd«‚|jj |d«S)zÖReturn a cached repo if available This function must be called after fork(), where the loader thread is stopped. Otherwise, the returned repo might be updated by the loader thread. s0cannot obtain cached repo while loader is activeN)rÚis_aliverÚProgrammingErrorrÚpeekr,s rÚgetzrepoloader.get?sI€ð �<Š<˜DŸL™L×1Ñ1Ô3Ü×(Ñ(ØCóð ð�{‰{×Ñ  dÓ+Ð+rc󚇇—‰jr®tj«‰jj «‰jrf‰jj « ‰j j«Štj‰jˆˆfd„«‰jrŒf‰jrŒ­yy#t$rYŒwxYw)Ncó&•—‰j‰«S©N)Ú_load)r-rs€€rÚz&repoloader._mainloop..\sø€°D·J±J¸tÔ4Dr) rÚgcÚcollectrÚwaitr(rÚpopleftÚ IndexErrorrÚ callcatchrr,s`@rr"zrepoloader._mainloopLs�ù€Ø�oŠoô �J‰JŒLà �N‰N× Ñ Ô !Ø—/’/Ø—‘×$Ñ$Ô&ðØŸ=™=×0Ñ0Ó2�Dô×!Ñ! $§(¡(Ô,DÔEð —/“/ð�o�oøô"òÙðúsÁ$B>Â> C à C có’—tj«} |jj|«}t|«|jjdd|tj«|z «|jj||«y#t$r1t j |j|«j«}YŒ”wxYw)Ns repocaches&loaded repo into cache: %s (in %.3fs) ) rÚtimerrÚpopÚKeyErrorrÚ repositoryrÚ unfilteredÚ _warmupcacherÚlogÚinsert)rr-r#Úrepos rr7zrepoloader._load^s™€Ü— ‘ “ ˆð >à—;‘;—?‘? 4Ó(ˆDô �TÔØ �‰� ‰ Ø Ø 6Ø Ü �J‰J‹L˜5Ñ ô  ð � ‰ ×ј4 Õ&øôò >Ü—=‘= §¡¨4Ó0×;Ñ;Ó=ŠDð >ús–B  7CÃCN) Ú__name__Ú __module__Ú __qualname__Ú__doc__rr#r)r.r3r"r7©rrr r s+„ñò òòòò ,òFó$'rr cóx—|j«|j|jj|jj|jj |jj tjD]}tj||«Œ|jj|«yr6) Ú invalidateallÚ changelogÚobsstoreÚ_allÚ successorsÚ predecessorsÚchildrenrÚ cachefuncsÚgetrevsÚ _phasecacheÚ loadphaserevs)rHÚnames rrErEqs}€Ø×ÑÔØ‡N‚N؇M�M×ÒØ‡M�M×ÒØ‡M�M×ÒØ‡M�M×ÒÜ×#Ô#ˆÜ×ј˜tÕ$ð$à×Ñ×"Ñ" 4Õ(rcóN—|j}|j}d|vr6|dx|d<}|jx|j_|j_d|vr%|dx|d<}|j|j_d|vr&|dx|d<}|j|j_yy)z/Copy cached attributes from srcrepo to destrepos changelogsobsstores _phasecacheN)Ú _filecacheÚsvfsÚobjÚopenerÚ _realopener)ÚsrcrepoÚdestrepoÚ destfilecacheÚ srcfilecacheÚces rÚ copycacherf~sª€à×'Ñ'€MØ×%Ñ%€LØ�|Ñ#Ø+7¸ Ñ+EÐEˆ �lÑ# bØ-5¯]©]Ð:ˆ�‰Œ ˜Ÿ™Ô*Ø�lÑ"Ø*6°{Ñ*CÐCˆ �kÑ" RØ—m‘mˆ�‰Œ ؘÑ%Ø-9¸.Ñ-IÐIˆ �nÑ%¨Ø Ÿ ™ ˆ�‰� ð&r) rr9rÚrrrrrr rErfrMrrÚrhs1ðóÛ Û÷õ÷W'ñW'òv )ó &r