Files
boc/aamos-ledger-rust/target/release/deps/libsync_wrapper-8ad4221fff0d0c88.rlib
T

60 lines
21 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 8 `
// 74 `
sync_wrapper-8ad4221fff0d0c88.sync_wrapper.bc7b009d502887f8-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 19456 `
ELF·€J@@GNUÀrust
8H#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ
SyncStreamÁT„:»futuresÁœã9í 
 SyncWrapperÁ

¥
ˆ¥æ get_mutÁ get_pin_mutÁ 
into_innerÁ¥¥×¥> ¥ ÷
SyncFutureÁ##innerÁ&&æ &Ã**°*Š - /¥/×




-
-
-
1
1
1
 

éˆ ˆŽM}èpô¥¿c­³­é­Ú‚Ø##%¬.E M2'¬g¿c##%¬.E M2'¬gÚ

/#

*# ¿c³
邨 
ÚÒü”>­Ú» -x 
Ú Ë~|­yÚwÚZ»ˆ©ÚØü™? Ú ­ 2$ê&Å üÓ&0\÷&Ú}¥ž „¾¹ 9'üˆ&ƒý¨ÿœY­ÚÚ ­ Úœý§ýæÞýÁ÷UŒY­å¾ýß[öX¹ ýƒ”ð&Úú
ý
š „¾„¾PinÁ†¾ ˜X$]È=„kt•¹ \´&„¾„¾ž †¾ ˜X$]È=„kt•Å $&¹ Å ¨[ò
ûÚ'ø¹ ö&ò
 Å $ñ&thisÁ.4Ê-ÚÖ-ü£-3Ú ¾-­$µ- ,¤à/
ãc à/ læ/”â/ú/ü¢/XÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
š ŸÈŸÈ ÈErrorÁ O˜éBL\Ê/ ­,©/  c cˆ¢cµ
 `£cbufÁ `àB¤GS
 °/S±˜QdÙ0
e
´Ú$) 
Ú å0ì0ü°0<SÚ¼Ï0­$À0Ú0ÿ) 
ÚÓ1"ü™1:SÚ„½1­$®1Ú,¡1» ?¼¡4) 
³ü“4' #³ ¹4À4(üì3TS³h$„4³,÷3

éˆ ˆŽM}èpô³°¬@qTì4þ³‰5)üÅ4D¯³d÷4³ à4$×4 >$Â6 üÇ6( þ³ „¾ ³<tû6
„س,û6†7D77- üÙ5¶ü­6bÙY³.³ú
  ³š Ö,9ŒYMUöXˆg¬Ù6.³ú
š .³Lå6œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ã³ƒØ6„¾„¾ž †¾ ˜X$]È=„kt•Ò$á5 ÌÌkÎwakerÁ¸Ï local_wakerÁ¸ÐextÁ¸Ñ_markerÁ¸Ò_marker2Á¸f'EwÚ]¾å÷5„¾„¾ž †¾ ˜X$]È=„kt•ˆ,±6ˆ ÒÂëcxÁd¬7V©¢5 þ³î6..³ùˆÜ65Ò Ú6à Sœö7˜ ö7
¯dü7Œø781ü¸7Wß\à7 À,¿7ð Æ7±E˜Ì… 
Ú&­1Ú8? 
#í× `p,Ú¿cpÂcˆ cž ö„¾FutureÁ4‡‚Ø k<šÌ ·œØ üд;üÐLI A mutual exclusion primitive that relies on static type information onlyÁúü¡ This library is inspired by [this discussion](https://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020/2).Á+https://developer.actyx.com/img/favicon.icoÁ„ï(https://developer.actyx.com/img/logo.svgÁl«
#í!×" `p!¿cp2Âcˆ! cž  „¾¹‚Ø kÌ ·œØ ÁÄÇÂηºœtÿ}üÂUrudghü®LŠ ûúüÿa^ In some cases synchronization can be proven statically: whenever you hold an exclusive `&mut`Áüá ^[ reference, the Rust type system ensures that no other part of the program can hold anotherÁüÀ
`] reference to the data. Therefore it is safe to access it even if the current thread obtainedÁü¡ c` this reference via a channel. Whenever this is the case, the overhead of allocating and lockingÁü… <9 a [`Mutex`] can be avoided by using this static version.Á úüÆ c` One example where this is often applicable is [`Future`], which requires an exclusive referenceÁüª
_\ for its [`poll`] method: While a given `Future` implementation may not be safe to access byÁüŠ^[ multiple threads concurrently, the executor can only run the `Future` on one thread at anyÁüé_\ given time, making it [`Sync`] in practice as long as the implementation is `Send`. You canÁüÉ]Z therefore use the static mutex to prove that your data structure is `Sync` even though itÁì§ contains such a `Future`.ÁÅú
# ExampleÁ×ú ```Áüã" use sync_wrapper::SyncWrapper;Áä† use std::future::Future;Á£ú¤§ struct MyThing {Áü¼EB future: SyncWrapper<Box<dyn Future<Output = String> + Send>>,Á,ˆú”Œ impl MyThing {ÁüŸXU // all accesses to `self.future` now require an exclusive reference or ownershipÁ¯/þúü‚  fn assert_sync<T: Sync>() {}Á£úì§ assert_sync::<MyThing>();ÁÖ-ÍúüÑC@ [`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.htmlÁü•FC [`Future`]: https://doc.rust-lang.org/std/future/trait.Future.htmlÁüÜPM [`poll`]: https://doc.rust-lang.org/std/future/trait.Future.html#method.pollÁü­B? [`Sync`]: https://doc.rust-lang.org/std/marker/trait.Sync.htmlÁ\¥ÍìÚ œ­ˆŽM}èpôÚ­q QÚ­