yyr t 0ururR q_threadmallocqr tr r tr-o r %pchan-o r create %rur xscs qsrisopenforrur$&uQuptop&tuZtpr&uVtpYupYwpruYxpruR BqaltqPutaltstRoq_threadgetprocq stsr &uZpRzaq_threadexitsallstatusquZpYpR)LqyieldqRGIq_procsplhiqssrsrxqstrusnrussaustYpYpYp0ur&uQpr&uZpYpr u(r & uZ pY p  ssuZprxqrsRWq_procsplxqsrurussxasrrrs&uQprcanexecrs&uZpYpDsrsR)q nrand qs&uZpsYpsuZdpsr&uZprxqrsqs sr ur!&!uZ!p""t"r"*u>"r""u"u "r""&uss!ca'u!ss"waitingr(u"ss#allreadyclr)u#s*tY*pY*pY*p*0ur*&*uQ*pr+&+uZ+pY,pY,p--sr-r--r-s&-uQ-pr.u"s//s/r$enqueue/$r/sY/p00rxQ0p1!sY1pr3u#sY3p&5"suZ5(p6!suQ6p8!s8rx89rx9qr:s:q;sr;u<!s<t<r<*u><r<<u<u <r<<Y<(p&=#suQ=(p?rx?qr@s@qAsrAurBuBYM)pNrxNqrOsOqPsPuR%ыq%_threadrendezvousP%qs&rP&sQqrQsRrxRqT&suZT;pUsuQU:pYV(pWus[us\tY\ApY\@pY\Vp\0ur\&\uQ\?pr]&]uZ]HpY^>p__sZ_Qpasaub&suZbQpcrxceesr'dequeuee'resYe>pgrxgqrhshqisuZicpjsuZj_pYjap-jo r pc==(Ch-jo r annel*)~jr xR?;q(_assertj(qrkukYkhpnsrnsrnr)altexecn)rR)Lq*_schedo*qpsrpuqsqtqrq*u>qrqququ qrqqqRV5q+chancloseu+q ut,cu,tzqrzs{rx{q{,tr|$&|uQ|p~rx~qrsqruru$ruYpYpYpDr &Rps-ir-suQp uZpYpYpr&uQpr&uZpr&uQpYpYpYps rxqrsqYpYpYps u%quZpYpqrsrxqr-s,tYpru$r&uQprrxqrsqruRV5q.chanclosing.qu,tqrsrxq,tr$&uZprusYprrsrxqrsqrsr/runop/rurs,tst0v0tsusrust1nb&1tuQprusYpYpru&1tuQpYpr* x(qrusuQpruru-o( r 0nbERR-o0 r OR: chan-o8 r nel alt -o@ r returnedrur- xrRJqfprintqR)Lqabortqrusqr&uQp&uQp&uQpYpRD+fqrecvq uru0tru/rRD+fqnbrecvq uru0trur/rRD+fqsendq uru0tru/rRD+fqnbsendq uru0trur/rrchannelsizer utszrtr &QKp-oH r %d exp-oP r ected ch-oX r annel wi-o` r th eleme-oh r nts of s-op r ize %d, -ox r got sizerurM xrr rqqRMV=q sendul qu,trurr,t0tqR((+q recvul  qu,trurr,ts v sq&uRdprEur sRD+fq sendp qu,trurr,tt v tqRoDqrecvpqu",tr"ur""r#,tsv#s##q&#uR#p$u$%s%%RMV=qnbsendul)qu+,tr+ur++r,,ttv,t,,q,,R((+qnbrecvul0qu4,tr4ur44r5,tsv5s55q&5uZ5pr6u6r7s77RD+fqnbsendp;qu=,tr=ur==r>,ttv>t>>q>>RoDqnbrecvpBquF,trFurFFrG,tsvGsGGq&GuZGpHuHIsIIremptyentryMr uMrQ &QuZQpQQuZQpYQpQ,trQ &QuQQpQQuQQpYQpYQpYQpr.string-Qor %d (c--Qor >nentry=-Qor =0 && c--Qor >qentry=-Qor =nil) ||-Qor (c->nen-Qor try && c-Qor ->qentryQrxQ(qQ,trSuYSpYSpYSpDSrS &SrS-sRSpTTTTTuZTprUUYUprWusextrarXs X YY,trY YurYR6N`qreallocYqY,tYZZuZZp-[or )reallo-[or c channe-[or l entrie[rxRPqsysfatal[q[,tr\-s\\\r\ur\s\ur\RXqmemset\qr]-s]]a$r(ua-eor s: %rQu-eor euing al-eor t %p on -eor channel reuerxeetaeteeq_threaddebugeqetf,tf ggrgthhhhhhl'r0ulqrruYrpYrpYr>pDrrr &rRrprs-sss cs sssssZs=p-tor %pDeque-tor uing alt-tor %p from-tor channelrtutrxtttttqt sru-suuuuurw&wuQw9prw$&wuZw:pYw<pxr!_chanfreex!ryYypyr"canexec~"r0u~rruruYJpYIpYmpDr &RHpuQZpr&Q[pYcp uQdpYlp-or %pcan -o r rendez a-o(r lt %p chrurxqruYGpr&uZuprr&NupY}pr&uZ|pr&uV|pY}pYp-o0r an %pca-o8r n buffer-o@r alt %p -oHr chan %prur6xqrurur#altexecbuffered#r8ur&uZpr&uTpYp-oPr buffer r-oXr ecv alt -o`r %p chan rurPx sq ss$.safer$srrur3rr rr$s(ut%willreplace&%tuZp/Dr&uZprr&OpYp-ohr %pbuffe-opr r send a-oxr lt %p chrurkx sq sr$srr rur3rr rr$s(u&%tuZpDqur&altcopy&rut'src'trtuQpuQprR4!پq(memmove(qYprurq)rhurrus)otheropr)srus*bu*sts+me+sruYpYpY%pD sr &RpuQ pr&)sQ pYpr-s uQpY$pDrs,nr,sq-nrand-qr,st ss.ir.s&uZ$p*sYp*suQp-or an %pre-or ndez %s -or alt %p c-or han %p a-or lt %pre-or cvsendrurxr&uZ/prxY0prx *s(qt+s s*ss/waiter/sr&uQBpr&uZCpY[pr&uQHpqtrur#r+ss0buf0s sr r&r0s/s sr r&rYipr&uZdpr r&rYipr r&r*s  s-or unlockin-or g the chrurxqr1chanlockr1xqsemunlockqtsplrtq_procsplxq-or anlockc-or hanlock -or is %ludrurxr1rrqY~pY~pYp*s uq_threadrendezvousquZ}pY|pruru#r s+str&uZpr r&rYpr r&rr1xqrtqrurerrcl6ru61ru6ruO