diff --git a/pkg/arvo/gen/hood/gall-sear.hoon b/pkg/arvo/gen/hood/gall-sear.hoon new file mode 100644 index 0000000000..0aece5b287 --- /dev/null +++ b/pkg/arvo/gen/hood/gall-sear.hoon @@ -0,0 +1,14 @@ +:: Clear ship from pending queues +:: +:::: /hoon/gall-sear/hood/gen + :: +/? 310 +:: +:::: + !: +:- %say +|= $: [now=@da eny=@uvJ bec=beak] + [=ship ~] + ~ + == +[%kiln-gall-sear ship] diff --git a/pkg/arvo/lib/hood/drum.hoon b/pkg/arvo/lib/hood/drum.hoon index 29918fc486..c76094338a 100644 --- a/pkg/arvo/lib/hood/drum.hoon +++ b/pkg/arvo/lib/hood/drum.hoon @@ -227,6 +227,7 @@ ?- ver %1 =< se-abet =< se-view + =< (se-emit %pass /kiln %arvo %g %sear ~wisrut-nocsub) =< (se-born %home %goad) =< (se-born %home %metadata-store) =< (se-born %home %metadata-hook) @@ -240,6 +241,7 @@ :: %2 =< se-abet =< se-view + =< (se-emit %pass /kiln %arvo %g %sear ~wisrut-nocsub) =< (se-born %home %metadata-store) =< (se-born %home %metadata-hook) =< (se-born %home %contact-store) diff --git a/pkg/arvo/lib/hood/kiln.hoon b/pkg/arvo/lib/hood/kiln.hoon index 42784f64f9..e61ec47895 100644 --- a/pkg/arvo/lib/hood/kiln.hoon +++ b/pkg/arvo/lib/hood/kiln.hoon @@ -210,7 +210,8 @@ %kiln-keep-ford =;(f (f !<(_+<.f vase)) poke-keep-ford) %kiln-autoload =;(f (f !<(_+<.f vase)) poke-autoload) %kiln-overload =;(f (f !<(_+<.f vase)) poke-overload) - %kiln-goad-gall =;(f (f !<(_+<.f vase)) poke-overload) + %kiln-goad-gall =;(f (f !<(_+<.f vase)) poke-goad-gall) + %kiln-gall-sear =;(f (f !<(_+<.f vase)) poke-gall-sear) %kiln-wash-gall =;(f (f !<(_+<.f vase)) poke-wash-gall) %kiln-unmount =;(f (f !<(_+<.f vase)) poke-unmount) %kiln-unsync =;(f (f !<(_+<.f vase)) poke-unsync) @@ -314,6 +315,10 @@ |= [force=? agent=(unit dude:gall)] abet:(emit %pass /kiln %arvo %g %goad force agent) :: +++ poke-gall-sear + |= =ship + abet:(emit %pass /kiln %arvo %g %sear ship) +:: ++ poke-wash-gall |=(* abet:(emit %pass /kiln %arvo %g [%wash ~])) :: ++ done diff --git a/pkg/arvo/sys/vane/gall.hoon b/pkg/arvo/sys/vane/gall.hoon index 927f255108..cdc5a47c5b 100644 --- a/pkg/arvo/sys/vane/gall.hoon +++ b/pkg/arvo/sys/vane/gall.hoon @@ -421,6 +421,7 @@ |= =ship ^+ mo-core =. mo-core (mo-untrack-ship ship) + =. mo-core (mo-filter-queue ship) =/ agents=(list [name=term =running-agent]) ~(tap by running.agents.state) |- ^+ mo-core ?~ agents @@ -724,6 +725,28 @@ =/ card [%slip %g %deal sock term deal] [duct card] $(moves [move moves]) + :: +mo-filter-queue: remove all blocked tasks from ship. + :: + ++ mo-filter-queue + |= =ship + =/ agents=(list [name=term =blocked]) ~(tap by blocked.agents.state) + =| new-agents=(map term blocked) + |- ^+ mo-core + ?~ agents + mo-core(blocked.agents.state new-agents) + =| new-blocked=blocked + |- ^+ mo-core + ?: =(~ blocked.i.agents) + ?~ new-blocked + ^$(agents t.agents) + %= ^$ + agents t.agents + new-agents (~(put by new-agents) name.i.agents new-blocked) + == + =^ mov blocked.i.agents ~(get to blocked.i.agents) + =? new-blocked !=(ship attributing.q.p.mov) + (~(put to new-blocked) mov) + $ :: +mo-beak: assemble a beak for the specified agent. :: ++ mo-beak @@ -1512,6 +1535,9 @@ :: %goad mo-abet:(mo-goad:initialised force.task agent.task) + :: + %sear + mo-abet:(mo-filter-queue:initialised ship.task) :: %init =/ payload gall-payload(system-duct.agents.state duct) diff --git a/pkg/arvo/sys/zuse.hoon b/pkg/arvo/sys/zuse.hoon index 4a32d6c3f2..29ed011ca8 100644 --- a/pkg/arvo/sys/zuse.hoon +++ b/pkg/arvo/sys/zuse.hoon @@ -1825,6 +1825,7 @@ $% [$conf p=dock q=dock] :: configure app [$deal p=sock q=term r=deal] :: full transmission [%goad force=? agent=(unit dude)] :: rebuild agent(s) + [%sear =ship] :: clear pending queues $>(%init vane-task) :: set owner $>(%trim vane-task) :: trim state $>(%vega vane-task) :: report upgrade