mirror of
https://github.com/urbit/shrub.git
synced 2024-12-31 00:31:26 +03:00
strandio: fix await-thread and thread-result
thread-result generated the tid twice and didn't take the kick caused by the child thread closing. Additionally, await-thread and thread-result expect a %thread-fail to produce [term (list tang)] rather than the actual [term tang]. This commit adds a take-kick, removes the duplicate tid line, and fixes the expected thread-fail type.
This commit is contained in:
parent
d17779972f
commit
210a63e238
@ -719,7 +719,7 @@
|
||||
(pure:m tid)
|
||||
::
|
||||
+$ thread-result
|
||||
(each vase [term (list tang)])
|
||||
(each vase [term tang])
|
||||
::
|
||||
++ await-thread
|
||||
|= [file=term args=vase]
|
||||
@ -727,14 +727,14 @@
|
||||
^- form:m
|
||||
;< =bowl:spider bind:m get-bowl
|
||||
=/ tid (scot %ta (cat 3 'strand_' (scot %uv (sham file eny.bowl))))
|
||||
=/ tid (scot %ta (cat 3 'strand_' (scot %uv (sham file eny.bowl))))
|
||||
=/ poke-vase !>([`tid.bowl `tid file args])
|
||||
;< ~ bind:m (watch-our /awaiting/[tid] %spider /thread-result/[tid])
|
||||
;< ~ bind:m (poke-our %spider %spider-start poke-vase)
|
||||
;< ~ bind:m (sleep ~s0) :: wait for thread to start
|
||||
;< =cage bind:m (take-fact /awaiting/[tid])
|
||||
;< ~ bind:m (take-kick /awaiting/[tid])
|
||||
?+ p.cage ~|([%strange-thread-result p.cage file tid] !!)
|
||||
%thread-done (pure:m %& q.cage)
|
||||
%thread-fail (pure:m %| !<([term (list tang)] q.cage))
|
||||
%thread-fail (pure:m %| !<([term tang] q.cage))
|
||||
==
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user