Files
archy/core/target/debug/deps/libthread_local-d94c3ac3942db9e3.rmeta
T

245 lines
66 KiB
Plaintext
Raw Normal View History

2026-01-24 22:59:20 +00:00
rust
©#rustc 1.93.0 (254b59607 2026-01-19)Áõ…·fÊ ¦%g--c48c539199cbc88bÁ³VOÐêùÿ²?ÑL¼§Ì±-a7a40eb546f9e2b0Áá\ƒ¦è3$|]åŒ[IÚ tæ-14b12edc9f8cd90bÁë&Gf·Ã ¬ëñq:¤»b-bb76018b1173caf6Áà 9m Ù„«ÐÒþá•cB;-030c5b0bba47cc8fÁrustc_std_workspace_coreÁÛ¹þÓ7>H%¸ÚÉ­-4b81d37a5530864dÁüÃùs<Uß7VyóHr#QÏ-c66cc7807550ce25Á miniz_oxideÁõFÖˆÚ™ª‹"ÞXzLVª-62cbc7af83058505Áadler2Á—wÉD‘嵯|6¨%Œ
+-2f171dd2394b4b62Á hashbrownÁ,ïcV¼¨ø¢:Ê\'È߈-9571ba9e0f6c7a90Árustc_std_workspace_allocÁ%¥Èxµù·¼5Ä3Bœ-aac566ad65903fa4Á
std_detectÁMmáýZ^9õ Îà§e˜÷e-2edb296e590136d8Árustc_demangleÁ@¼§VÉNb˜æ¨fHÌ+V3-53b132e4a2fa6e26Ácfg_ifÁfÝv.Å"ÒÜuPp¹ˆ¶-f76b385d7d4d7f3eÁ addr2lineÁÕú-WiúQVÓ¬
µT§5-fe25100bd73e48e4ÁgimliÁ¹xLáÇí÷‘o±Ñ8£Å-265ba9e6e4f70b3fÁobjectÁÔ³ÝzÓÿ¶ò°öM›¼òü`-9ae0d1f8ea52a318ÁmemchrÁRÎ÷׎™te~QÓ¿ØC\Ò-0bff3c8e8f4e489eÁ  –©HtGNÏ·ˆ!á-d69228d077d46f36Á®M1XÃßÏ“¡ÂØ_ùШ-7228978f4fcb9234Á
POINTER_WIDTHÁl˜Ù¤ô16Á$‹ÜôîÙ¤¶32Á$ÍܶtestsÁ,‚à$÷€cachedÁCachedThreadLocalÁ  innerÁ> getÁget_orÁ
get_or_tryÁõ § clearÁ½IntoIterÁŠ !'aÁ!!½!Â
!Š ''get_or_defaultÁ**Í-
CachedIterMutÁ/Ü
//¯ 3Ü
33½3¥ 3 size_hintÁ9Ü
9CachedIntoIterÁ<<¯  ??½?¥ ? 
D thread_idÁFFFFFFThreadIdManagerÁL free_fromÁL free_listÁFO OáQ OfreeÁFTHREAD_ID_MANAGERÁFU ßWWUncheckedOptionExtÁYYunchecked_unwrapÁYunchecked_unwrap_noneÁWUncheckedResultExtÁ]]
]unchecked_unwrap_okÁ]unchecked_unwrap_errÁWbbÀb×Wff
fšf´ 
  
îBUCKETSÁ ThreadLocalÁbucketsÁ EntryÁpresentÁ˜ˆˆ²>²  
with_capacityÁ Þ è šõ š ý õ 
 get_innerÁinsertÁ£ § ¤
¥¥½¥Â
¥Š ªÜ
ªª½ªÂ
ªŠ °Ü
°°½°Â
°Š Œ  ¹¹Í
¼ ¾ ¾¥ ÀÜ
À¾next_mutÁÃÜ
þ next_bucketÁ¾ Ǿsize_hint_frozenÁÉ ËÜ
Ë˽˥ Ë 
ÑIterMutÁÓÜ
ÓÓèÓ@ØÜ
ØØ½Ø¥ Ü Ø ßáãÜ
ããÍçç½ç¥ ê ç íïallocate_bucketÁññ deallocate_bucketÁôFThreadÁöidÁöbucketÁö bucket_sizeÁööFFüÈFF ThreadGuardÁÿ¼F² FÞ  Fget_slowÁ FTHREADÁˆ__RUST_STD_INTERNAL_INITÁˆ Š __RUST_STD_INTERNAL_VALÁŠ F THREAD_GUARDÁÛ   RawIterÁyieldedÁÆÔöÍIterÁÜ
è@¢Ü
¢¢ÍÂ
¦¦è¦@ªªÍ




)
,
,
,
7
8
B
C
Q
S
Š


š

 
¡
¢
£
¤
¸
»
»
»
À
Ã
Æ
Ç
Ç
É
É
Ï
Ð
Ñ
Ü
Þ
ß
á
æ
æ
æ
ê
ì
ý


œ
œ
œ
¥
¥
¥
¬
¬
¬
Y]Ä   
¯ ÛsŒÔ›a®JîJ Ü
   
¯ ÛsŒÔ›aà`ÿ±ÃÞK//¾ 2¯ Fꈶõ8À"Ü
² ©KÕ ÞK<<© >¯ Ð
ÎZó,Ÿ‘ì©K˜!áöö®÷¼øÆùÔúöÅŠˆ6¸!ÞÕ!þÕ! ÿÿ¼F?‹]qžý¹Yø°ú°û°Ðü°ý°þ°ìHˈXêE>ìì]ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ì
ì$ ˜­˜'Ý_qìåþƒÙà2x9]ìÄä$ ä$®Jä$®J Ü
åþƒÙà2x9]² ®J Ü
Ç%à`ä$¿±ä$à`êù˜ÆÔšö€Dιñýà`« è¡@Ô°9òÛ'”*Ü
² ÞK'ÖN« è¡@Ô°9òÛ'”*8² ÞKÓÓ˜Öè×@¾ÆSNÞ˜äÜ
² ©KÓÓ˜Öè×@¾ÆSNÞ˜ä8² ÖNÜ(à`–(à`¦¦Â
¨è©@ýy1ÊáWY÷ìÞKµ)©Kµ)ÖNµ)  !
¥ª
°
* ¹¢ãÓª¦- ¼3/?ØÓç¦9/DÓí¦ûöüöþöÿˆbø°fê³ÑáÓï¦Äß®J à`¿±'ÞK ©KáÞþ Y]ÖN
ø°  f dataÁõèòþ[µ‰bl›Ö›ÖœÖžÖì Jc
ö]@+•E•EEGlobalÁ Ï€ûkW¬ süÆG
L ä®- ŒPü¥nLL
M±
FNÁ
F™ªzùe,1ø°ú°û°Ðü°ý°þ°ìHˈXêE>Ì,xùФX

éŠX
É,É,qË,˜¸+»\¡Ø Êø°ú°û°Ðü°ý°þ°ìHˈXêE>Õ!ù¨XŠø°ú°û°Ðü°ý°þ°ìHˈXêE> ø°ú°û°Ðü°ý°þ°ìHˈXêE>ä/ ä/ç0¯Mùs•TˆÊ¯ M¨Þ@§ ä/áŸsTWŠç0ç0$Ã$
ø°Õ!|¹$
 L¹$
ê,0?* Ç$ùÀ+Xä/¤š$0|.ùÃX
éÃX
¨ä//5ùùðX 
ì0ý1/ç0 ûXùÀßXùöX 
ƒ5†5•5#ç0 XM žXù®ÿXŠç0ƒ5†5•5åƒ5†5•5ŸSùФX

éŠX
½"ù¨Xø°ú°û°Ðü°ý°þ°ìHˈXêE> ø°ú°û°Ðü°ý°þ°ìHˈXêE>½" ½"²7¯Ýùs•Tʯ M¨Þ@§ ½"áŸsTW²7²7d£%
L£%
ê,®- ­%®-Aü‘% 
ÿ °%ùÀ+X½"\û$É,É,qË,˜¸+»\¡Ø Ê®-¹ZùÃX
éÃX
¨½"/5ùùðX 
ƒ5·7È8•5/²7 ûXùÀßXùöX 
ƒ5<•5#²7 XM žXù®ÿX²7ƒ5<•5åƒ5<•5ŸS@64ÁœË}†> ܆>- *}†>(†>T†>äË®- æü´4~®-†>¡†>«5¥}†>¯}†>
~®-%®-07;~®-BUCKETSÁ<á&Üì&
Ìì&
¸£$* üë&&®-? 'ü·'"<Ï'¼À' çZçZ\éZÓZ{Ð%¶Òý£$®-? Ö'œï'
„ï'
¸¸ €(®->ü›'r
ì Œ( ’(“(ü®&åüÝ&¶ä$tÄ& £$®-?¶CÉA8µC7®¸®¸b¯¸ÓZiVwƒ'þÚ<‰'
~®-%®-07;~®-BUCKETSÁ<À+
~®-˜%®-07;~®-BUCKETSÁFW}~Óñô¦© <l¾ /m Œó n
UnsafeCellÁT—Ç.oͬï+p£ÖNqmemÁØÕr MaybeUninitÁ\ëÒs
UnwindSafeÁTˆ¿±t÷ êuUTºâZw\LÆçZxb\Ñ®¸yÕдz®ö{ó”‘]|üÍ‹£üÍ# Per-object thread-local storageÁñËüõPM This library provides the `ThreadLocal` type which allows a separate copy ofÁüÆDA an object to be used for each thread. This allows for per-objectÁü‹MJ thread-local storage, unlike the standard library's `thread_local!` macroÁüÙ2/ which only allows static thread-local storage.ÁŒËüNK Per-thread objects are not destroyed when a thread exits. Instead, objectsÁüßKH are only destroyed when the `ThreadLocal` containing them is destroyed.Á«Ëü¯HE You can also iterate over the thread-local values of all thread in aÁüøOL `ThreadLocal` object using the `iter_mut` and `into_iter` methods. This canÁüÈNK only be done if you have mutable access to the `ThreadLocal` object, whichÁü—C@ guarantees that you are the only thread currently accessing it.ÁÛËüßOL Note that since thread IDs are recycled when a thread exits, it is possibleÁü¯ PM for one thread to retrieve the object of another thread. Since this can onlyÁü€
NK occur after a thread has exited this does not lead to any race conditions.ÁÏ
Ë
# ExamplesÁâ
Ëüæ
! Basic usage of `ThreadLocal`:Áˆ Ë  ```rustÁü˜ " use thread_local::ThreadLocal;Áü» 30 let tls: ThreadLocal<u32> = ThreadLocal::new();Áüï  assert_eq!(tls.get(), None);Áü %" assert_eq!(tls.get_or(|| 5), &5);Áü¶ $! assert_eq!(tls.get(), Some(&5));Á  ```Áã Ëüç 74 Combining thread-local values into a single result:ÁŸ
Ë
×Qü¯
"ëQ¼Ò
 use std::sync::Arc;ÁÄê
 use std::cell::Cell;Á¤ƒ use std::thread;Á˜Ëüœ+( let tls = Arc::new(ThreadLocal::new());ÁÈËüÌ,) // Create a bunch of threads to do stuffÁœù for _ in 0..5 {Áü let tls2 = tls.clone();Áü­ thread::spawn(move || {ÁüÍ96 // Increment a counter to count some event...Áü‡41 let cell = tls2.get_or(|| Cell::new(0));Áü¼%" cell.set(cell.get() + 1);ÁÜâ }).join().unwrap();ÁËüˆKH // Once all threads are done, collect the counter values and return theÁüÔ.+ // sum of all thread-local counter values.Áüƒ,) let tls = Arc::try_unwrap(tls).unwrap();Áü°<9 let total = tls.into_iter().fold(0, |x, y| x + y.get());ÁÌí assert_eq!(total, 5);Á<‡ÕSFW}~Óñô¦> © ? <l¾ > /m =  nÀE2 Ç.oÍ1 ï+p£0 ÖNqƒF, Õr™F Òs¸F ¿±t÷  êuU âZw\ çZxb ®¸yÕ дz® ö{ó ]|c f i T4… /<Â
D#¦˜<-Óå\6ÍMï+¸FTb¿± ,w²Œ
ü'np`bRTDHH´V;Tr-üû%ü# Wrapper around [`ThreadLocal`].Á£Ëü§KH This used to add a fast path for a single thread, however that has beenÁüóDA obsoleted by performance improvements to [`ThreadLocal`] itself.Á1.1.0ÁUse `ThreadLocal` insteadÁü¸BŒ†é`ò`  ©âì ˜¨âì$›ÃÛsŒÔ›a
+-¬§é`ò`  ä$üÁ.ºb ÆÊb$ÉÃÅüö$Ã
ìüÇ"ºb ÌÊb$ÏÃü¯$üð,) Creates a new empty `CachedThreadLocal`.ÁÃ
ìüþü®=: Returns the element for the current thread, if it exists.Á­ ­Ãø°ú°û°Ðü°ý°þ°ìHˈXêE> ­ì 
ìü±LüÄKH Returns the element for the current thread, or creates it if it doesn'tÁT” exist.Á4¸® ®Ãõ ®ìõ  ©âÈh ¿Èh•5Èh•5ì û
ìÈhcreateÁ4ÉIKüé
iü± KÀfü
FC exist. If `create` fails, that error is returned and no element isÁ
 added.ÁTð
¯ ¯ÃÈhê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ ¯ì
õ 
 úh û
©â×k þ
ŠiĹ Èh•5ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ì×kdÅ 
ìÈh×k$‚ Âh4ˆ œžüÃ.üŠ DA Returns a mutable iterator over the local values of all threads.ÁÓ ËüÛ IF Since this call borrows the `ThreadLocal` mutably, this operation canÁü©
FC be done safely---the mutable borrow statically guarantees no otherÁüô
<9 threads are currently accessing their associated values.ÁDʰ °Ã//¾ 2¯ Fꈶõ8À"°ì Ó
ì¼µüËJG Removes all thread-specific values from the `ThreadLocal`, effectivelyÁüš&# reseting it to its original state.ÁÅËüÍI©mü›Fûmüæ<Ên,¼± ±Ã•5 Â
ìüô3ºb ùÊb$üà ¯J°J±J #%ì˜!üé'Ø!
ìüêDÜ
"#"#©â² ó¨â² ² Ü
ýƒ $%&¯J°J±J&ï@B"Lµ!! Ü
² !!Õ üû*ƒ Õ !!
&Ü
² üÉ,((ºb ÎÊb$ÑÄìÃ)!üæ"üüKH Returns the element for the current thread, or creates a default one ifÁ¬Ì it doesn't exist.Átí² ²Ã ²ì' ü'
)ìü´>++ºb ¹Êb$¼à`ìÃ,á`,&(üù4ü³´µ ³Ã ´Á`Á`œÃ`è Á]Ä`bufÁÁ]Ê­\É:•µê³í³î³Òï³ìð³ñ³ò³ìäs{©¶•5ѼѼÒ¼ štÀ.* *
,ì$þ üý>..ºb Êb$…¿±ìà üÀ*üÀ@= Mutable iterator over the contents of a `CachedThreadLocal`.Áé`Use `IterMut` insteadÁü>é`÷{Ü
0110ít Ýýt$àuçuü¼p$Õ Fꈶõ8À"2Ù790¬ñé`÷{//(ü‹8Ü
4554ít ýt$—užÕ 678ßKàKäK87354LÊ33Üuüô' Õ ø°ú°û°Ðü°ý°þ°ìHˈXêE>Üu3 ü3
7Ü
² $üÑ-· ·Õ ®-ø°ú°û°Ðü°ý°þ°ìHˈXêE>®-3 Þ3
8Ü
² ü©AÜ
:;:;ít ²ýt$µu¼Õ ®:üè"üï85 An iterator that moves out of a `CachedThreadLocal`.Áé`Use `IntoIter` insteadÁü¨?é`•‚==ºb Êb$… ˜!Ð
ÎZó,Ÿ‘>"$”‘ , é`•‚<<µ)ü¨ ,@@ºb ­ Êb$° ˜!ABCßKàKäKBC&(??ìüý $€!¸ ¸˜!ï"? …!?
Bì$Š!üÒ!-LÕ!¹ ¹˜!? ß!?
Cì$à!üª"5EEºb ¯"Êb$²"˜!lL‘LTöÿˆî }FGq$öÉ,FH›ÖFIœÖFIfT© FJ˾:FK¤Ñr|ëgŒ€Zä—9„¹,´¥F­.™ªzùe,1MN„ÂFLL®-üØ-FLLæ.¤Š­.PQS´¥®F­.OO
Pä™Fº º­.®-O ¢O
QQ<closure_kind>ÁR<closure_signature>ÁR<upvars>ÁRRQR Ì,ø°ú°û°Ðü°ý°þ°ìHˈXêE>ü,•5ì»

F» »­.®-•5O Ã
O
S
¼Î
üÌ 0ŒÓ F¾:¾:ËÀ:¯ ¬:Á:poisonÁ¬:Â:Þ+¬:«¡Ïmlèé¿­.C0ÿÿÿÿÿ0\ÊÕ!VüÜ$ê®-Õ!UU
V¼î\ Y]unreachable_uncheckedÁ¬Ü ¸ WXüÑ üÔÍYZYZªâüÃúít àY§ §&[\[\[\,.ü­&„·¯² YY
[¯² ü•&¬Ÿ¯•5YY
\¯² ü‘"”›]^
_]_^§ü‘ít ®‘l ±]§'§-`a`aa`359;üý)œ‡¯² ]]
`¯² ×k$›üî*¤ø¯×k]]
a¯² ×k$üœ+ccºb ¡ï"de[\deüÎ%„Øï"ìbb
dìüç %¬ñ ï"•5bb
eì$‡
üâ
4g
hghºb ç
©â$ ê
¿#ij`aij')$&ü (œ§ ¿#ìff
iì$ ü¹ )¤Ã ¿#$ff
jì$ üË:""¢"¢"²"²"¬ŒÌ"D§ß"ĵò"DÓ#¬á&#´üD#D˜X#ü¦Aj#j#|#|#Ž#Ž#¢#¢#Œí¶#ü„É#¼–»ô ÷ 8Ù¤ø 764Á$üò#†>¤´®-üÏüê! Thread-local variable wrapperÁŒËü>; See the [module-level documentation](index.html) for more.Áºb æÊb$éä$Ùà2x9]ƒ(*üï'ÊAl®-œ›4›åC|³ºb À£$'Ý_qŠ!#œÉâZâZUãZúBÓZ/&†ìK 58üâ!Ç.Ç.ÀEÉ.˜¸+ö)=ê „9ÛÒÒ™FÒuninitÁüÒ˜ügÇ@ÇeÉRì̈ºb £$Š Š”¨¼ ¼£$•5ˆ °ˆ
Šìü!,ŒŒºb ™!Êb$œ!ä$ü¾!(ŽŽºb Ã!Êb$Æ!ä$Åôí!<ð!ä$
ìü²"%ºb ·"Êb$º"ä$ ”Þ"$á"½ ½ä$•5 æ"
ì$ë"äà%ºb å%Êb$è%ä$•š ¡¢£¤,.ü®&$üƒ&&# Creates a new empty `ThreadLocal`.Á»&ä$
ì·!®-ü÷)7ü™([X Creates a new `ThreadLocal` with an initial capacity. If less than the capacity threadsÁüù([X access the thread local it will never reallocate. The capacity may be rounded up to theÁÌÙ) nearest power of two.Álþ)®-ä$
ìcapacityÁDŒ*"®-üÆ/ü„/=ÙdÍ/¾ ¾ä$ø°ú°û°Ðü°ý°þ°ìHˈXêE> ¾ì Ñ/
ì$Ò/üû0Lüœ0KÀfTì0“g41¿ ¿ä$Èh ¿ìõ  Œ1úh ‰1Šil¹1œi Å1
šìÈh$1Âh4“1,.û1š´‰œ̉œé‰œœšœìÈh•5ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ì•5Èhüû3iüÑ2KÀfü¡3FöhTì3ÄiT4À Àä$Èhê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ Àì×kõ ž
ŸŸž “4úh 4l 4ŠiÄË4¨ld×4
ìÈh×k$”4Âh4š468<>ü£61L¦6Á Áä$Õ!ø°ú°û°Ðü°ý°þ°ìHˈXêE> Áì °6
 ì$±6ç4·6üŸ:/4¢: Âä$Õ!ì Âì ©:
¡ì$ª:ç4°:Þ+$À:ü‘G<üÚEKH Returns an iterator over the local values of all threads in unspecifiedÁTªF order.Á¹FËüÁFKH This call can be done safely, as `T` is required to implement [`Sync`].Á$˜Gà Ãä$« è¡@Ô°9òÛ'”*Ãì Gì$ÈG
¢ì$žGüK(ü¹HFC Returns a mutable iterator over the local values of all threads inÁ´„I unspecified order.ÁŸIËü§II©müõIFûmüÀJ<ÊnDˆKÄ Ää$ÓÓ˜Öè×@¾ÆSNÞ˜äÄì ‘K
£ì$–K¼ðNü”LJ“püãL&æpŽMËü–MI©müäMFûmü¯N<Ên,÷NÅ Åä$•5 ýN
¤ì$‚Oü·O-¦¦ºb ¼OÊb$¿Oä$§¨©¯J°J±J©')LëO$ðO¥¥ìlþODƒP¥¥µ)ü P!L£Pä$µ)¥¥
©ì$­Pü«Q<Ü
«¬«¬ít ´Qýt$·Q² $¾QÁ%­®¯¯J°J±J¯°Q<>LîQ$óQªª Ü
² l…RDŠRªª'ü§R$LªRÁ%Á%°Jªª
¯Ü
² $´RüëR9Ü
±²²±ít ôRýt$÷R‡&³´µ¯J°J±JµðR-/L«S$°S°°ÜulÆSDËS°°–(üëS$LîS‡&(°°
µÜ
² $øSü³T&··ºb ¸TÊb$»Tîv<ÂTä$¸üÊU"üàTKv¬°UðvtÑUÆ Æä$ Æì àU
¸ì$áUüžV8ºººb £VÊb$¦V‡yT­Vä$»á`» "üÝV4àVÇÈÉ Çä$ ÈÁ`Á`œÃ`è Á]Ä`yÁ]Ê­\É:•ɶz¹ äV¹
»ì$åVþ ëVüáW8½½ºb æWÊb$éW|TðWä$d“Y­&¿ÀÃÆÇÉ„´Y·Y­&¾¾
¿üÌZY$ÏZÁÊ Ê­& Áä$ø°ú°û°Ðü°ý°þ°ìHˈXêE> Áì¾ÂÂÔZ¾ºb ØZÊb$ÛZÓ°$âZ
Àì$íZèdóZ68.0üÔ`|D×`ÄË Ë­& Ää$ø°ú°û°Ðü°ý°þ°ìHˈXêE> Ä£$¾ÅÅà`¾ºb ä`Êb$ç`
Ãì$û`èd‰a.0&(Ì’g\•gÌ Ì­&•5¾ ¡g¾
Æ$¦gü‹hULŽhÍÎ Í­& Îä$¾ÈÈ ¡h¾ºb ˜hÊb$h