mirror of
https://github.com/urbit/shrub.git
synced 2024-12-22 18:31:44 +03:00
factor out raft_pump()
This commit is contained in:
parent
94cacc5629
commit
0a66673134
91
vere/raft.c
91
vere/raft.c
@ -1985,52 +1985,17 @@ _raft_poke(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* u3_raft_work(): work.
|
/* _raft_pump(): Cartify, jam, and save an ovum, then perform its effects.
|
||||||
*/
|
*/
|
||||||
void
|
static void
|
||||||
u3_raft_work(void)
|
_raft_pump(ovo, vir)
|
||||||
{
|
|
||||||
if ( u3Z->typ_e != u3_raty_lead ) {
|
|
||||||
c3_assert(u3A->ova.egg_p == 0);
|
|
||||||
if ( u3_nul != u3A->roe ) {
|
|
||||||
uL(fprintf(uH, "raft: dropping roe!!\n"));
|
|
||||||
u3z(u3A->roe);
|
|
||||||
u3A->roe = u3_nul;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Delete finished events.
|
|
||||||
//
|
|
||||||
_raft_crop();
|
|
||||||
|
|
||||||
// Poke pending events, leaving the poked events and errors on u3A->roe.
|
|
||||||
//
|
|
||||||
_raft_poke();
|
|
||||||
|
|
||||||
// Cartify, jam, and encrypt this batch of events. Take a number, Raft will
|
|
||||||
// be with you shortly.
|
|
||||||
{
|
{
|
||||||
|
u3v_cart* egg_u = u3a_malloc(sizeof(*egg_u));
|
||||||
|
u3p(u3v_cart) egg_p = u3of(u3v_cart, egg_u);
|
||||||
|
u3_noun ron;
|
||||||
c3_d bid_d;
|
c3_d bid_d;
|
||||||
c3_w len_w;
|
c3_w len_w;
|
||||||
c3_w* bob_w;
|
c3_w* bob_w;
|
||||||
u3_noun ova;
|
|
||||||
u3_noun ovo;
|
|
||||||
u3_noun vir;
|
|
||||||
u3_noun nex;
|
|
||||||
u3_noun ron;
|
|
||||||
|
|
||||||
ova = u3kb_flop(u3A->roe);
|
|
||||||
u3A->roe = u3_nul;
|
|
||||||
|
|
||||||
while ( u3_nul != ova ) {
|
|
||||||
ovo = u3k(u3t(u3h(ova)));
|
|
||||||
vir = u3k(u3h(u3h(ova)));
|
|
||||||
nex = u3k(u3t(ova));
|
|
||||||
u3z(ova); ova = nex;
|
|
||||||
|
|
||||||
if ( u3_nul != ovo ) {
|
|
||||||
u3v_cart* egg_u = u3a_malloc(sizeof(*egg_u));
|
|
||||||
u3p(u3v_cart) egg_p = u3of(u3v_cart, egg_u);
|
|
||||||
|
|
||||||
egg_u->nex_p = 0;
|
egg_u->nex_p = 0;
|
||||||
egg_u->cit = c3n;
|
egg_u->cit = c3n;
|
||||||
@ -2062,6 +2027,50 @@ u3_raft_work(void)
|
|||||||
_raft_kick_all(vir);
|
_raft_kick_all(vir);
|
||||||
egg_u->did = c3y;
|
egg_u->did = c3y;
|
||||||
egg_u->vir = 0;
|
egg_u->vir = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* u3_raft_work(): work.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
u3_raft_work(void)
|
||||||
|
{
|
||||||
|
if ( u3Z->typ_e != u3_raty_lead ) {
|
||||||
|
c3_assert(u3A->ova.egg_p == 0);
|
||||||
|
if ( u3_nul != u3A->roe ) {
|
||||||
|
uL(fprintf(uH, "raft: dropping roe!!\n"));
|
||||||
|
u3z(u3A->roe);
|
||||||
|
u3A->roe = u3_nul;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Delete finished events.
|
||||||
|
//
|
||||||
|
_raft_crop();
|
||||||
|
|
||||||
|
// Poke pending events, leaving the poked events and errors on u3A->roe.
|
||||||
|
//
|
||||||
|
_raft_poke();
|
||||||
|
|
||||||
|
// Cartify, jam, and encrypt this batch of events. Take a number, Raft will
|
||||||
|
// be with you shortly.
|
||||||
|
{
|
||||||
|
u3_noun ova;
|
||||||
|
u3_noun ovo;
|
||||||
|
u3_noun vir;
|
||||||
|
u3_noun nex;
|
||||||
|
|
||||||
|
ova = u3kb_flop(u3A->roe);
|
||||||
|
u3A->roe = u3_nul;
|
||||||
|
|
||||||
|
while ( u3_nul != ova ) {
|
||||||
|
ovo = u3k(u3t(u3h(ova)));
|
||||||
|
vir = u3k(u3h(u3h(ova)));
|
||||||
|
nex = u3k(u3t(ova));
|
||||||
|
u3z(ova); ova = nex;
|
||||||
|
|
||||||
|
if ( u3_nul != ovo ) {
|
||||||
|
_raft_pump(ovo, vir);
|
||||||
|
|
||||||
_raft_grab(ova);
|
_raft_grab(ova);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user