Files
guba-indicator/rust/target/debug/deps/libtry_lock-656131bcec94598b.rmeta

57 lines
16 KiB
Plaintext
Raw Normal View History

rust
U>#rustc 1.93.1 (01f6ddf75 2026-02-11)<29><02><05><11><><EFBFBD>GȬx<C8AC>92X<32>l-5bed970bceb2abc5<63><02>L<><4C><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>E,<07>R<EFBFBD><52>-3d16dd14375d91ab<61><01><02>$<24><02>$<24>tests<74>,<2C><<02>$<24><<02>  <02> <02>  try_lock<63> try_lock_order<65> try_lock_explicit<69> try_lock_explicit_unchecked<65> 
into_inner<EFBFBD><02><02><02><02>LockedPlaceholder<65>
<02>Locked<65>'a<><02>lock<63>order<65>_p<5F>%<01>%<02>%<02>%<02>*<01>*<02>*<02>.<01>.<02>.<02>2<01>2<02>2<02>TryLock<63>6<02>6 is_locked<65>6<02>:<02>:>          ) - 1 5 5 5 <01>66<01>8<01>9<02>'<27><><EFBFBD> <20><02><01><><01><01><01><01>`<01><01>`<01> h|Bձ<42><13><01><01>"<01>#<01>$<01><00>e<><65><01><02><01><01><01> <01><01>`<01>:66662%*.<01>-<01><><01><01>`<01><01><01> <04><>
&,
3|<7C> <01>Z,<2C> Z<05><><1C>-
4|<7C> <01>.<01>EV <0C><00><>k
6<01> <0C><04><01><> <0A> <0C>3<01>T<><00><1C><01>Z<01>ZU<01>Zv<><01>Z<01>* <09><><EFBFBD>$Wq<01>.<01>.
UnsafeCell<EFBFBD><01>.<02><01>+<04><><16>_*3.<01>R<01>R<0F><02><0F><0F>6<02><01> T<><01>.<02><1C> <01>]<02>,<2C> <01>DerefMut<75>D<EFBFBD> <01>UT<55> <01>Z <02>D<> <01><>
PhantomData<74>\<5C> <01> <01> <01> <0B><00>?<00>s52 A light-weight lock guarded by an atomic boolean.<2E><1C><02><00><>IF Most efficient when contention is low, acquiring the lock is a single<6C><00><>:7 atomic swap, and releasing it just 1 more atomic swap.<2E><1C><02>l<>
# Example<6C><1C><02><<3C> ```<60><00><> use std::sync::Arc;<3B><00><> use try_lock::TryLock;<3B><1C><02><00><> // a thing we want to share<72><00><> struct Widget {<7B><00><> name: String,<2C>,<2C> }<7D><1C><02><00><> // lock it up!<21><00><>0- let widget1 = Arc::new(TryLock::new(Widget {<7B><00><> name: "Spanner".into(),<2C>D<> }));<3B><1C><02><00><>" let widget2 = widget1.clone();<3B><1C><02><1C><02><00><> // mutate the widget<65><00><>KH let mut locked = widget1.try_lock().expect("example isn't locked yet");<3B><00><>$! locked.name.push_str(" Bundle");<3B><1C><02><00><> // hands off, buddy<64><00><>(% let not_locked = widget2.try_lock();<3B><00><>:7 assert!(not_locked.is_none(), "widget1 has the lock");<3B><1C><02>ԅ // ok, you can have it<69><00><> drop(locked);<3B><1C><02><00><>HE let locked2 = widget2.try_lock().expect("widget1 lock is released");<3B><1C><02><00><>/, assert_eq!(locked2.name, "Spanner Bundle");<3B><<3C><01>6<02><17><01> <17><01>.<02><17><01>]<02><17><01><01> <17><01>U<17><01>Z <02><17><01><>
<01> <17><01> <01> <17><01> <04><>L<>,<06><> (+<06><> * <17><06><> <17><05><> <02>  <01><><01> <0C> <00><00><> &<00><> (% Create a `TryLock` around the value.<2E><1C><02><07>  <01><02>d<05><>+<00><>*' Try to acquire the lock of this value.<2E><1C><02><00><>A> If the lock is already acquired by someone else, this returns<6E><00><>C@ `None`. You can try to acquire again whenever you want, perhaps<70><00><><9 by spinning a few times, or by using some other means of<6F><00><> notification.<2E><1C><02>T<> # Note<74><1C><02><00><>JG The default memory ordering is to use `Acquire` to lock, and `Release`<60><00><>52 to unlock. If different ordering is required, use<73><00><>85 [`try_lock_explicit`](TryLock::try_lock_explicit) or<6F><00><>JG [`try_lock_explicit_unchecked`](TryLock::try_lock_explicit_unchecked).<2E>D<EFBFBD>= =<3D><01><><01><><01><><02><01><><01><><02><01><><02>i<><69>Py<50>.<2E><01>"<01>#<01>$<01><00>e<><65>=<01>  <0C> <01>$<24><00><>_<00><>NK Try to acquire the lock of this value using the lock and unlock orderings.<2E><1C><02><00><>A<01><00><>C<01><00><><<01><00><><01>0.2.3<EFBFBD><00>This method is actually unsafe because it unsafely allows the use of weaker memory ordering. Please use try_lock_explicit instead<61><00><><17>t<><01>"<01>"> ><3E><01><><01><><01><><02><01><><01><><02><01><><01><>G<01><><01><>F<01><><01><><02><00>&<26>ô <09>d<00>$<01><><01><><01><><02><01><><01><><02><01><><02>i<><69>Py<50>.<2E><01>"<01>#<01>$<01><00>e<><65>><01>  <0C> <01>$<24>
lock_order<EFBFBD>T<EFBFBD> unlock_order<65>d<EFBFBD><00><>b<00><>FC Try to acquire the lock of this value using the specified lock and<6E><00><> unlock orderings.<2E><1C><02><00><>A<01><00><>C<01><00><><<01><00><><01><1C><02>\<5C> # Panic<69><1C><02><00><>IF This method panics if `lock_order` is not any of `Acquire`, `AcqRel`,<2C><00><>IF and `SeqCst`, or `unlock_order` is not any of `Release` and `SeqCst`.<2E><><EFBFBD>? ?<3F><00>$<24>$<01><><01><><01><><02><01><><01><><02><01><><02>i<><69>Py<50>.<2E><01>"<01>#<01>$<01><00>e<><65>?<01>  <0C> <01>$<24><01>&T<><01>&d<><00><>)s<00><>$F<01>&<00><>$FC unlock orderings without checking that the specified orderings are<72><00><>% strong enough to be safe.<2E><1C>%<02><00><>%A<01><00><>&C<01><00><>&<<01><00><>'<01><1C>'<02>d<>' # Safety<74><1C>'<02><00><>'KH Unlike [`try_lock_explicit`], this method is unsafe because it does not<6F><00><>(KH check that the given memory orderings are strong enough to prevent data<74>L<>( race.<2E><1C>)<02><00><>)2/ [`try_lock_explicit`]: Self::try_lock_explicit<69><74><EFBFBD>)@ @<40><00>$<24>$<01><><01><><01><><02><01><><01><><02><01><><02>i<><69>Py<50>.<2E><01>"<01>#<01>$<01><00>e<><65>@<01>  <0C>) <01>$<24>)<01>&T<>*<01>&d<>*<00><>-<00><>,DA Take the value back out of the lock when this is the sole owner.<2E>T<EFBFBD>-<02><06>  <01>$<24>-<00><>.(<02><00> <0C>.<01><><01>$<24>.<00><00><>.(<02><00> <0C>.<00>3$<24>.<00><00><>/-<02><00> <0C>/<01>`<01>T<>/<00><01>`!<00><>/4<1C>/ABC A<> B<01>`<01>`<02><01>`<02> <01>]<01>`buf<75><01>]I<19><>̖<EFBFBD><CC96>C<01><><01><><01><><02><01><><02><01><><01><><02><01><><02><00>(<28>*<2A><>é<01><><01><><01><><02> <00><19><>E=<3D>z <0C>/ <01>$<24>/<02> <0C>/<00><>0<00><>0<00>h|Bձ<42><13>+'<00><07><>0%<00><01>`<00><>14<1C>1DEF D<> E<01>`<01>`<02><01>`<02> <01>]<01>`<01>4<01>]I<19><>̖<EFBFBD><CC96>F<01>5 <0C>1 $<24>1<02> <0C>1<00><>6<00><>4-* A locked value acquired from a `TryLock`.<2E><1C>4<02><00><>4NK The type represents an exclusive view at the underlying value. The lock is<69><00><>5'$ released when this type is dropped.<2E><1C>5<02><00><>5-* This type derefs to the underlying value.<2E>,<2C><>5;+TryLock will immediately unlock if not used<65>4<>6<01> <02>!! <01><><01> <0C>6<02><01><14>6<00>;<3B><>6<00><00>e<><65>"#$1<14>6:< 4$<24>6 <01>66<01>8<01>9<02>'<27><><EFBFBD> <20><01>|<7C>6,<2C>6<00>$<24><>7<14>7<01><01><01><01> <00>'<27>"<22><><EFBFBD> <0B><01><>7#<01>&<02>''&<00>; <0C>7<00>()<01><01>)<14>7\<5C>84<>8%%<00><08><>8,<2C>8G G<> G<>% <0C>8% )<01><01>$<24>8<00><>8&<01>+<02>,,+<00>; <0C>8<00>-<01>-<14>8<00><>9!L<>9H H<> H<>* <0C>9* -<01><01>$<24>9<00><>:"<01>/<02>00/<00>; <0C>:<00>1<01> 1<14>:<00><>:$<24>:I I<><01>6. <0C>:. 1<01><01>$<24>:<00><>;4<01>3<02>434<00>; <0C>;<01>`<01>T<>;<00>5<01>`5<14>;%'<00><>;4<1C>;JKL J<> K<01>`<01>`<02><01>`<02> <01>]<01>`<01>4<01>]I<19><>̖<EFBFBD><CC96>L<01>52 <0C>;2 5<01><01>$<24>;<02> <0C>;<00><> <00><> 5<01> <1C>
<02><00><>
I<01><00><>
:<01><1C> <02><00><> IF It is only possible to try to acquire the lock, it is not possible to<74><00><> ;8 wait for the lock to become ready, like with a `Mutex`.<2E><<3C> <02>77<00> <0C> <00>'<27><><EFBFBD> <20>89<00><> L<> 66<00> <0B><> ,<2C> 66<00> 8<10> <02>;;<00>|<01><01>0<><<01><<0F><0F>KM<01>:: <<01><13>
X
<17> 
 
<17>
 <0C>/
L<>/
<17>
 <0C>1
L<>1
<17>
<17>
?
@
 <0C>;
L<>;
 Self::try_lock_explicit<69>TryLock::try_lock_explicit<69>$TryLock::try_lock_explicit_unchecked<65><01><01>6<01><01>G<01>G<01>G<01><01><01><01>G<01>G<01>G<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01> <01> <01> <01> <01><01><01><01>J<01>K<01>J<01>J<01>K<01><><01><>®¢ك<00>Y<EFBFBD>O}T}<7D> bs<62>ޙ<EFBFBD><DE99><10>B<<3C><>{G<>d$<24>V<EFBFBD><56>
5<EFBFBD>6PծD<EFBFBD>G\<5C>Y-0<>s<EFBFBD>a<EFBFBD>k<EFBFBD> <20><>tL7<4C>r{09<30><39><EFBFBD>;6^m<><6D><0E>$<24><>Qmew<><77><13>RS+<2B><19>S<EFBFBD><EFBFBD>fl<66><6C><EFBFBD><>#<23><> <0B><><EFBFBD>ƛ<EFBFBD><C69B><EFBFBD><17><>G<EFBFBD>/Eզi3ݫbb<62><62>s <0C><><EFBFBD><EFBFBD>L <09><><EFBFBD>G<EFBFBD>rW<72>D<EFBFBD>Œ<EFBFBD>}i<><69><0F><>(T˝<54><05><>N_@<40><><EFBFBD><14>O<EFBFBD><4F><EFBFBD> R<>Mt<4D><74><12><>/<2F>S<53>Y6ZH&<26><><EFBFBD>:><10>[<5B><02>L<>)<29>J<EFBFBD>0<EFBFBD><30><EFBFBD>,<2C><><EFBFBD><EFBFBD>ک<EFBFBD><1B>cs<63><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00>u<00><>%7<><37>iXr1em<65>~<7E><>oHwi<77> <0B><>[8ܝ<38>bz<62>1<EFBFBD><31>z<EFBFBD><7A><0E><>n0<12>z<17>۰gKO<4B>J<EFBFBD><4A><EFBFBD>+<2B><><EFBFBD>
|7je<6A>3<33><EEB498>L<EFBFBD>K<EFBFBD><4B>/<2F>yC<><43><EFBFBD><EFBFBD><EFBFBD><04><>ϭ<EFBFBD><CFAD><EFBFBD>o8<><38>镋"<22><><03><>.V<><56>N<EFBFBD><4E>C<EFBFBD>
<EFBFBD>[<5B>s<EFBFBD>><3E>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><10> <20>8v<38>^<5E><><EFBFBD>_<01><>Y<01><><1A><><EFBFBD>z<EFBFBD>~<7E><05><>J9<1F><>YX<59>*<2A>έ<EFBFBD><CEAD>+X<03><>><3E><>/<2F><>H$<24>eb<65>̠O<CCA0>*<2A>;<3B><><EFBFBD><EFBFBD><<3C>̧<EFBFBD><CCA7>3?V0<56><30><EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/<2F>B<42><EEA6BA>u<06>H_<48>q<EFBFBD>}u<><75><EFBFBD><EFBFBD><1C><><17><1B><>;<3B>S<17>Ѕ<EFBFBD>C<EFBFBD><07>TR<54><1B>c{<7B>bx<62>z<EFBFBD> 6ow<6F>(<28>:<3A>X5<58><14><><EFBFBD>5<06>x<>8<EFBFBD><10> &w<><77><EFBFBD>0r<30><72>p<EFBFBD> <0A>Jg&;<3B><>73<37><33>V<EFBFBD>Vu&i<00><00>#<23> <01>'<00> <00> J <0A>D <13>uE<00><19>>Y<1B><00>'g<00><1E>1~<1F>+ <20> <00> <20>!<00>"<22>"<22>"%#<23> <00> 2l<00>J<00><00>\
 <00> <00>" #    & 
     <18>  <0A><0F><11><14><17><00><19>)oC<00>+<00><1E><00>A <00> e"<00>"<22>"9#<23>O S U \ c g m s x ~ <0C> <0C> <0C> <0C> E <0A>?<13>q<18>3@mz<19><19><19>9T<1B><1B><1D><1D> #b<1E><1E><1E><1E>,fly<1F>  ' ~ <20> <20> <20> <20>!<21>"<22>"<22>"<22>"###U#[#a#g#m#s#z#<23>#<23>#<23>#<23>#<23>#<23>#<23>#<23>#<23>#Q Y ` j p { <0C> <0C> <00>  <0A><0F><11><14><17>5o<00><19><19>Y?<1D><1D><1D>'<00><1E><1E><1E>jn~  + <00> <20> <20> a"<22>"<22>"<22>"#%#X#^#d#j#p#w#~#<23>#<23>#<23>#<23>#<23>#<23>#<23>#<23>#<23>#<00><00> <0C> 1 <0A>~O<18>=Zw<19><19><19><1A>3F<1B>d<00><1D>5<1E><00><1E>Qv<1F><1F>$ f <20> <00> k!z"<22>"<22>"<22>"<22>" #J#<00> <0C> ) <0A><10>rC<18>7Gq<19><19><19><1A>+@<1B>F<00><1D>-i<00><1E>3p<1F><1F> Z <20> <00> _!g"<22>"<22>"<22>"<22>"#B#<00> 7 <0A> <13>S<18>0j<00><00><1A>7H<1B><1B><00>!9<1E><00>Z<00> j <20> o!<21>"<00>"<22>"
#N# <0A><0F><11><14><17><00><19>+pD<00><00>B <00> f":# <0A><0F><11><14><17><00>p<00><00>D <00> ;# <0A><0F><11><14><17><00>]<00><00>/ <00> '#)3=f<00><00><00><00><00> ?y<00><00><00>x& <00> <00>""#%5 > <0A><13>Z<18><00><00>%<00>w |!U#<00><1D> <00> E<00>>=g1<00><00> _"<00>"
<00><00>"<00><00><00>"<22><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>
7Yjnuy<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01>!(/3:AHLSZaov<02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02><02> <00><00>"<00> <0C> <0C> <0C> <0C> <0C> <00>K<00><1E>] <00> #<23>#|$<00> 2l<00>P<00>b <00> #



<02> ¢ك<00>Y<EFBFBD><59>m<>i<><02><<3C> <00><>kcore_intrinsics<63><01><01>¢ك<00>Y*<2A><><EFBFBD>\<10><><02><00><> <00><><EFBFBD>[<01><01>¢ك<00>Y<08><><EFBFBD>J<EFBFBD><4A><EFBFBD><02>5<EFBFBD>4<EFBFBD>4<00>4<EFBFBD>45<>5C5 535<33>5u5<75> ODHT M<00><02><>X5<58><14><><EFBFBD>5G¢ك<00>Y<00><><EFBFBD><EFBFBD><04><><EFBFBD>,<00><>+X<03><>>8<13>RS <00>><3E>p<EFBFBD><70><EFBFBD><EFBFBD>1<><EEB498>L<EFBFBD>K*m<><6D><0E>$<24>
ک<><1B>cs<63>+<2B><19>S<EFBFBD> <00><><EFBFBD><EFBFBD><10> <20>2<00>Qmew<><77> <00>*<2A>;<3B><><EFBFBD><EFBFBD>;<01><>Y<01><>4<00>a<EFBFBD>k<EFBFBD> <20><00>TR<54><1B>c{D<17>Ѕ<EFBFBD>C<EFBFBD>C<00>镋"<22><>.<00><>#<23><> <0B><><00>J<EFBFBD><4A><EFBFBD>+<2B><>(Y6ZH&<26><><EFBFBD><00><>.V<><56>N<EFBFBD>/<00><0F><>(T˝ow<6F>(<28>:<3A>FYX<59>*<2A>έ7G\<5C>Y-0<>s8v<38>^<5E><><EFBFBD>_3<00><><EFBFBD><EFBFBD><EFBFBD><00>u z<17>۰gKO'<00><>/<2F><>H9Jg&;<3B><>73K<17><1B><>;<3B>SB<00>tL7<4C>r{<00><>%7<><37>i!<05><>J9<1F><>6<00>B<42><EEA6BA>u?<00><><EFBFBD>G<EFBFBD>rW<72><00><><EFBFBD><EFBFBD><EFBFBD>)/><06>H_<48>q<EFBFBD>}@$<24>eb<65>̠O:<<3C>̧<EFBFBD><CCA7>3?<<00>G<EFBFBD>/EզiV0<56><30><EFBFBD>5<EFBFBD><35>=<06>x<>8<EFBFBD>H<00><05><>N_@<40>D<>Œ<EFBFBD>}i<><00><><14>O<EFBFBD><4F><EFBFBD>5<>6PծD<D5AE><00>d$<24>V<EFBFBD><56>
<00>C<EFBFBD>
<EFBFBD>[<5B>s0<00><><EFBFBD>,<2C><><EFBFBD><EFBFBD><00><>V<EFBFBD>Vu&iL:><10>[<5B><02><00>[8ܝ<38>b$ bs<62>ޙ<EFBFBD><DE99><00>ƛ<EFBFBD><C69B><EFBFBD><17>bb<62><62><00>oHwi<77> <0B>#<00>
|7je<6A>3)Xr1em<65>~<7E>"<0E><>n0<12>&<00>fl<66><6C><EFBFBD>@<40><00><><EFBFBD><EFBFBD>o8<>-0r<30><72>p<EFBFBD> <0A>J<10>B<<3C><>{G09<30><39><EFBFBD>;6^ R<>Mt<4D><74>z<>1<EFBFBD><31>z<EFBFBD><7A>%<00> &w<><77><EFBFBD>Iu<><75><EFBFBD><EFBFBD><1C><>A<00><>/<2F>yC<>+<1A><><EFBFBD>z<EFBFBD>~<7E>5s <0C><><EFBFBD><EFBFBD>L L<>)<29>J<EFBFBD>0<00>O}T}<7D><00>bx<62>z<EFBFBD> 6E<00><>/<2F>S<53><00><1A>,g<1F><>)<29>~%<25><>N<EFBFBD>K?XXofO<66><4F><EFBFBD><EFBFBD>=<03><><EFBFBD><EFBFBD><EFBFBD>w\<5C>DvNpV<70><56>9<EFBFBD>/:'$<19><>)=4}:i><3E><>'<27><1F><>4<EFBFBD><34><EFBFBD>\<5C><><EFBFBD>WWG<57><47><EFBFBD><EFBFBD>z9A4<41>P1<50>f<EFBFBD>{<7B>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<19><>rXkFW#/ X<03>wDZh<><1A>,g<1F><>)<29>~%<25><>N<EFBFBD>`C:\Users\dxzq\.cargo\registry\src\mirrors.ustc.edu.cn-38d0e5eb5da2abae\try-lock-0.2.5\src\lib.rs<72> O<><19>8R|UC<55> <01><1E><1F><33><D5AC><EFBFBD>Em/@'<27>/o<00>?<3F>?<3F>( 6J; 1 #L%);I0 "06J;J<--/)
/FHAO:=O2S
SFHALQfG
KFHANNi #S
 #J
G
KK"FHAPP7z4%!
I#^ ,,0;8"0C(
50.8
.O(.<A&+)(/%67;$  $C/2J<13>%rP8<50>ۜ<EFBFBD>N<08><><EFBFBD><EFBFBD><00><x86_64-pc-windows-msvc<76><63>8<>Y<EFBFBD>:<3A><>}<7D>h<EFBFBD><68><EFBFBD><01>-656131bcec94598b<38>¢ك<00>Y<02>|R<07><00>AM<00> `7<00>=:=:=<01>;M<>=MMzM<><00>="=z=z=z=<3D>=z;zv<x=<00> @;v77nMn<00>7=nz;<11>"<01>rust-end-file