Files
boc/aamos-ledger-rust/target/debug/deps/libjobserver-59f15d67e1a1584c.rmeta
T

242 lines
92 KiB
Plaintext
Raw Normal View History

rust
ˆn#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0Áù«< fÅþ¦®Ž
žaa…Ý-54993f73e3057ce2Á RawFdÁ,Kú$>4=$í—$â—impÁáâžúâ¤ï$¶Â$«ÂÀ errorÁ î  × sourceÁ 
  
-æ .BUFFERÁ/ / -mkÁ2 -openÁ- from_fifoÁ5 5 7 - from_pipeÁ9 9 -from_fdsÁ-acquireÁ-acquire_allow_interruptsÁ- try_acquireÁ-releaseÁ@ -
string_argÁ- availableÁ- configureÁD  spawn_helperÁFF USR1_INITÁF F J LjoinÁM  fcntl_checkÁfd_checkÁclone_fd_and_set_cloexecÁQ  set_cloexecÁset_nonblockingÁcvtÁsigusr1_handlerÁWdrop_without_releasingÁ
  
]new_okÁ]new_errÁ`æ ` from_env_extÁb c b `from_envÁ`¿ `ì h `¡ `± `configure_makeÁ`
mflags_envÁ`into_helper_threadÁn` acquire_rawÁ` release_rawÁrãt
request_tokenÁvãxlockÁy xfor_each_requestÁ{impl FnMut(&HelperState)Á{ find_jobserver_authÁ~  ~   FromEnvErrorÁinnerÁ × FromEnvErrorKindÁNoEnvVarÁ
 NoJobserverÁ
 CannotParseÁ
CannotOpenPathÁ
 CannotOpenFdÁ

NegativeFdÁ
NotAPipeÁ
 UnsupportedÁ
 × FromEnvErrorInnerÁš
¤œ
¼ž
žˆÔ¡
¡ˆ¡ï¥
¥ˆ¥ˆ©
©ˆŸ¬
¬ˆ¬´°
 ²×ClientCreationArgÁ´FdsÁµreadÁµwriteÁ´FifoÁ¸
¸ˆ»×ClientÁ½Ç½Ó½ creation_argÁ½is_non_blockingÁÂ×AcquiredÁÄbyteÁÆ×HelperÁȊȺË×ÍßσÑרÓÓdataÁÓdisabledÁ ×× HelperStateÁÙÜÙcvarÁ
Ü> Þ× HelperInnerÁàrequestsÁà
producer_doneÁà
consumer_doneÁ ä>
æ×FromEnvÁèè½ë× HelperThreadÁíßíºð×




4
5
9
=
>
?
@
@
B
C
D
D
g
h
j
k
k
l
l
m
p
q
s
u
w
y
{
{
~



˜
˜
˜
³
³
³
¼
¼
¼
Ã
Ã
Ã
Ç
Ç
Ç
Ì
Ì
Ì
Ð
Ò
Ò
Ò
Ø
Ø
Ø
ß
ß
ß
ç
ç
ç
ì
ì
ì
ñ
ñ
ñ
¿c˃ßïÖZx™\"¿cˆŠ¤Œ¼ŽÔ´µa*¢ð¼áÄcопcšœ¤žŸ¼ ˆ¡¢Ô£ˆ¤¥¦ï§ˆ¨©ªˆ«ˆ¬­Ÿ®ˆ¯°±´ cmLãpÊd¿c´µ¼Ç·Ó¸¹àºˆü9kß5[7¿¿c½½¾Ç¿ÓÀ¢ÁÍVˆ¯0q µ¿cÄÄØÅèÑ
ºúéè¿cÈÈÿɊʺ˜«¿²¾ïÀÇØÍÍÎߢl;“S¿cÌ#¿cÓÓØÔÕßÖë,ª{Û%³ÙÙÚÜÛ¡áŽ:ëÕ=îš¿cÔ$³ààÃáÖâæãûÐ8I0 i²C¿c%¿cèè¦éê½ùšbl\Œ"Š$¿cííÐîßïºjuÁ~Uw8Œ"¶&²»´Â½ÆÄËÈÑÍ×ÓÞÙæàëèðíÏÍÜÙäàrÓví¿c
ˆÄc[¾Ø³Œ"(ë  ø# µ(µ'3 ¿cfk
ùc|otðªÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ ÈErrorÁ O˜éBL1 Ð<  c cˆ¢cµ
 `£cbufÁ `àB¤GS
ƒµ(µ(|ú(  µÅ+š»±ÉÔÃ+ú(É”)æ (Æ .4< µ(Ê
RZµ(
mu
µ(9
ˆ µ(T
£«µ(o
¾Æ µ(Š
Ùá µ(¥
ôü µ(À

êc)/ 8˘PÕ)\ gä*oµ(w±¢³.¬ (0»  .4 < µ(HM³.Y ^
f(0˜"Ÿ°0Ÿ"ŸÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙßß·)à ¬
ÑøÿËO Ÿµ(¸ú(®ºú(PV
‰dhn
ö
(0ƒ"ˆÎ0¡ª
µ(.:ú(ÓÙ
‡dëñp
ÿ(0Ü!ïÎ0p0ã!ï­18A µ(Hú(>Jú(zª2
¦00²!
ÔúHúHßûHÁ‘4Ý­f‰úM÷p0º! Ô­1
 µ(s

ú(> Jú(LRª2_ e
À
x00!¼5  µ(. : ú(ÉÏ­3Üâk
ðõþ µ( ³.$
-2; µ(HN³.[a
j³ˆ¤!Õ)±Å+¹ä*Á‘/ɵ(ѵ(Ù 5gµ(ìú(w «9«9\ ­1"µ(ú(wú(: Ù9E Î0<Ù9*µ(Pú(Tú(Bü9J‡:éµ(xú(ù ‡:‡:) è0µ(¦ú(Dú(2 å:=µ(É
Ó±á__self_0Ázº:X
__self_1Á' º:Ú:º:´º:ÝÚ:Ï\³.f‡:ú(ˆ;ú(òª2|Ò:ú(ý­3Ї:ú(Žü9ú(|ª2 «9ú(ýü9ú(Àª2Æ9ú(A­3ij.ʳ.Ð(1þ"H1¶ àžBoxÁ¡ˆˆ¢ˆl }.xÏ…0…0PathÁ†0ßß-bªŸðcÂ^çEçEèEGlobalÁ ¿±‡§í#Þ
æ
µ(È Ôú(­3!
'6X1¼Î0`1¼Î0ox µ(HP µ(Zú(P X
µ(b n
 ú(ÕÛ
ûcíó¾Ã ®
³¼(.5Õ)B ª!Mä*U/]‡:*‡:µ(uµ(Bú(Jµ(8ú(@Ò:H è=µ(°ú( ËBͱۺ:®Ú: º:Ù 
æBú(î­3‡:ú(éÒ:ú(׋A2(2Î µ(P2î  µ(FileÁßõýmï˜"ù.»Uú(X2þ 
µ( ŸD& ú(ø2
  µ( ª!'  ú(ø2â#
 µ(Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¤]¤]V¦]Á‚]üß3ø¤”&˜¤ú(£
ÿc
µ»¬²SY
) /
þóà Õ) „""ä**µ(2µ(%ú(- ŸD8µ(Ûú(ã®Hëµ(½ú(ÅðA͵(žú(¦  òE´ûH¼­±»Æ®Hú(½®Hú(`ðAú(2ùHú(Gð(3“  µ(@3µ  µ(&2ú(Y^”)jo_d3˜ ǘÕ)£ Ù"­ä*´µ(»µ(­ú(´  ›JÁ²KÈæ±óý°Kú(ó”)
  |›JüŸ &/J“LL­ 2“L128Á“L128Á“L(D“i µ(°D³i µ(ÁÁÂ
JoinHandleÁĈ¦ ¯óyÃéߣ*bú(ðDÏi µ(
†J†JK‰Jµ 7ŠJphantomÁ7J¤7·0ØQdèÔ$Û>u 
 ú( A-3$*¾ÃRD˜iÌj Õ)v #ä*µ(µ(ú(Œ àMµ(-ú(5  ÒNCëPKܱêõÎPú(ìéPú(‹A¸I¥"†J†JK‰Jµ 7ŠJðM7J¤7·0ØQdè„"Û>^c
ÙÔQt|(Iþ! ÍIƒ"Ð*Ì#5 Ì#?ÔQÆ ÔQÐYc«Rì(J…" µ(¸J¥" µ(ÔQ&2ú(Y^”)jo_dJŠ"Ò˜Õ)£üRªä*±µ(¸µ(ªú(± S»SÂà±í÷„Uú(í”) (K$ µ(ÀK¯$ µ(ÔQ&ú(˜KÍ$ µ( Ù"& ú(pKæ$
 µ(
% 
1  ú(ÄÉ
ýcÚßÏÔ£¨
w |K$ØÕ)) Š$4ä*<µ(Dµ(7ú(?SGµ(ú(!ŠK)µ(ûú(  ×X¢±°»Sú(²ŠKú(ÕXú(VœWÝÀL )
´µ>µ>¤·>ߣ>¸>poisonÁ£>¹>ߣ>Ë»™z™g—%hhL¾)
´‡>‡>CondvarÁˆ>ßú=UZ
i)RÖÀN8Lö( ÙLý(Ý-Ô$8ËYÿ¹Z˜MÅY³Z®(Mÿ(  µ(ÀM ) µ(ËY&ú(hM¾) µ(
¹Z& 
2 ú(‹A ¥šinÁM„)ߨ Õ)ã Ô$íä*ôµ(ûµ(íú(ô ËYþµ(Ïú(Ö  ¹Zã†^ê>±LWì]ú(N„^ú( AqxNƒ*
´“L˜N˜*
´˜N±*_8NÙ) àNà)å0%;“LŸƒhUë^»_ž_ (Oâ)  µ(xOƒ* µ(“L&ú(˜O˜* 
µ( % ú(˜O±*
 
µ(
% 
1  ú(ÃÈœWÔÙÉ΢
r wÿOç)çÕ)" %-ä*5µ(=µ(0ú(8 “LCµ(ú(×X%µ(øú(ÿÕX×X˜±¦±€cú(¨×Xú(zÕXú(MœWÓ(PÙ+  µ(øPµ,( µ(Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ì#Ðxú(øPÔ-) !µ(
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙµ(OsStringÁßëY6a×é5W£ 
¯ ú(^dAqwhnìñPÞ+ì® Õ)º ñ%Åä*͵(Õµ(Èú(Ð ÆdÛµ([ú(c  Îeq”hy ±.9÷gú(0hú(°AS,‡ '/9AKS]e´˜¤˜
´Ô$ ü D
“8Ô$D' '  ,ž
ÙÒN -
<ž ‡ž  “ž \ŠžDŠž
ªB
)- 
žö<¡ˆˆ¢ˆl }.xÏ“"Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Š$­1˜"Õl£*ÌìÛ>üã3 *Œã
F Ò
 8U •ž ø»ã4 
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
#­1ï
vz ˜üã4l#üÞ: Û¼#,¦žü¼z íü¹~ Ö¿¶&­1 ¼ž ¼–ž[Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­­1¦
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶&­1ÿpë
  ½ž!2Cüí›Ð¦
·È
Ù
¥ÇnüƒºãêñúqÄ™œÌ#$Šœëk œÒN Ô$·¶&yÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ#𕢘¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜ÿp#þÙnˆÌ##ÒNèëPŽlžö<¡ˆˆ¢ˆl }.xÏëkÛ>Þëk/Yÿpa#ñÒNÅÇΈ±Œº°Ž ¿¹SŠíij•jJkâåkîvŽløm¦Ón*ôq0ÒNÒN ÒN&ÒNqÌ#wëk8Ì#>(S¤§ " µ(ÐSʧ µ(¡u'ú(¸Sê§ µ(
ÒN' 
3 ú(‹A£¨œjoÄS©§ñÜ Õ)ç ¶&ñä*øµ(ÿµ(ðú(÷ ¡uµ(Òú(ÙéPàëPç=±KVº{ú(LéPú(Ap\Š! Ÿ%µ057>t£! ¢(µ35:­1AHdÏ! ¦(µ3Î0:­1AHTø! ª%µ0Î07>D" ­(µ3Î0:è0AH ´¹%ª!0è=7> ÓÙàèíÀ¡¡eDœioÁ¯¦CommandÁ<Åî1KÞ†JÃY<ã‡> ¤µ>
¥½T ׌Ô*YËd÷*[÷„…+èÔü0- An implementation of the GNU make jobserver.Á1úü5MJ This crate is an implementation, in Rust, of the GNU `make` jobserver forÁüƒNK CLI tools that are interoperating with make or otherwise require some formÁüÒJG of parallelism limiting across process boundaries. This was originallyÁüLI written for usage in Cargo to both (a) work when `cargo` is invoked fromÁüêMJ `make` (using `make`'s jobserver) and (b) work when `cargo` invokes buildÁü¸IF scripts, exporting a jobserver implementation for `make` processes toÁ¬‚ transitively use.Á˜úüœJG The jobserver implementation can be found in [detail online][docs] butÁüçFC basically boils down to a cross-process semaphore. On Unix this isÁü®LI implemented with the `pipe` syscall and read/write ends of a pipe and onÁüûLI Windows this is implemented literally with IPC semaphores. Starting fromÁüÈOL GNU `make` version 4.4, named pipe becomes the default way in communicationÁü˜MJ on Unix. This crate also supports that feature in the sense of inheritingÁüæ+( and forwarding the correct environment.Áúü–NK The jobserver protocol in `make` also dictates when tokens are acquired toÁüåNK run child work, and clients using this crate should take care to implementÁü´ EB such details to ensure correct interoperation with `make` itself.Áú ú ## ExamplesÁŽ
úü’
LI Connect to a jobserver that was set up by `make` or a different process:Áß
ú

```no_runÁÔñ
 use jobserver::Client;ÁŒ úü 52 // See API documentation for why this is `unsafe`ÁüÆ 63 let client = match unsafe { Client::from_env() } {Áüý  Some(client) => client,Áü 0- None => panic!("client not configured"),Á  };Á  ```ÁÝ úüá /, Acquire and release token from a jobserver:Á
úl•
áÔ£
÷¾
úüÂ
85 let client = unsafe { Client::from_env().unwrap() };Áüû
JG let token = client.acquire().unwrap(); // blocks until it is availableÁüÆ<9 drop(token); // releases the token when the work is doneÁúüHE Create a new jobserver and configure a child process to have access:ÁØúôä use std::process::Command;ÁÔƒ÷žúü¢EB let client = Client::new(4).expect("failed to create jobserver");Áüè'$ let mut cmd = Command::new("make");Áü client.configure(&mut cmd);Á¸ú ## CaveatsÁËúüÏHE This crate makes no attempt to release tokens back to a jobserver onÁü˜MJ abnormal exit of a process. If a process which acquires a token is killedÁüæOL with ctrl-c or some similar signal then tokens will not be released and theÁü¶(% jobserver may be in a corrupt state.ÁßúüãOL Note that this is typically ok as ctrl-c means that an entire build processÁü³?< is being torn down, but it's worth being aware of at least!Áóú´÷ ## Windows caveatsÁŽúü’MJ There appear to be two implementations of `make` on Windows. On MSYS2 oneÁüàMJ typically comes as `mingw32-make` and the other as `make` itself. I'm notÁü®PM personally too familiar with what's going on here, but for jobserver-relatedÁüÿIF information the `mingw32-make` implementation uses Windows semaphoresÁüÉOL whereas the `make` program does not. The `make` program appears to use fileÁü™JG descriptors and I'm not really sure how it works, so this crate is notÁüäFC compatible with `make` on Windows. It is, however, compatible withÁœ« `mingw32-make`.Á¿úüÃKH [docs]: https://make.mad-scientist.net/papers/jobserver-implementation/Áhttps://docs.rs/jobserver/0.1ÁlÍ ÓÙàèíÀ¼½Ï¡¡e½áº¦ö²î1K±†JÃY°‡> ¤¯µ>
¥®½T ×­Yˬ[÷«\ž¡¤D„”’}o¬·\QTDG7:*-L,…
T
ú$d, Î0ŒŠ Ðü¾ &¼¢  Get the error kind.Á$Å ò òÐ Ê 
 üŠ'ÐÅcü¸B»óôõ óÐ ô c cˆ¢cµ
 `£c…* `àB¤GS
õÕ) ¿
± Æü˜'пüÆ>ö öÐÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ö¾ Ð
<­ú$±FOPQSTUV´½ÄÈc_intÁ,
¿¬×ŒY©C$> OpenOptionsÁ\D¤Já$`¦ReadÁ$fà WriteÁ,lŸ!í}ë MaybeUninitÁ\ÑÛ³=$Ë…0!öî1"
AtomicBoolÁTЬ]%®D¼À&K¥†J'Š$¿¦)BuilderÁ<ÅðH*îLTÎÁ+DurationÁDê­Ö,OsStrExtÁE¸Ï$ OsStringExtÁ]ÂÉ$ DirEntryExtÁ]¯»% FileExtÁ=¢ï$ FileTypeExtÁ]±% MetadataExtÁ]˜% OpenOptionsExtÁu¥‰% PermissionsExtÁuµ% AsFdÁ%¦, AsRawFdÁ=¬«+
BorrowedFdÁUµÎN FromRawFdÁMÁ­+ IntoRawFdÁM̯+ OwnedFdÁ=×ö+ îª+ ChildExtÁEÚÍ)
CommandExtÁUÉœ)
ExitStatusExtÁmÕ¸)
JoinHandleExtÁmÈŠ* \¹Ä¬<4 <V}[mp\_DxS¬†=´¡4¬Õ(¼ð  üÿóàãÓ֜߄".2459<=>?@BCDüÔ 2Û “LÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
„"­1--
.limitÁ,ã ¼Ÿ  ºL² “LÀ //“Lü$÷±--
2 Ð22“LüºY÷ ÷Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
„"µ- ×-
4¾ Ô
check_pipeÁTÝü…BLˆø øÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â