mirror of
https://github.com/urbit/shrub.git
synced 2024-12-23 19:05:48 +03:00
removes the rest of i/o polling, %behn and %ames now work
This commit is contained in:
parent
7e829d4c50
commit
1e17dc6fe6
@ -1120,12 +1120,12 @@
|
||||
/* u3_behn_ef_bake(): notify %behn that we're live
|
||||
*/
|
||||
void
|
||||
u3_behn_ef_bake(void);
|
||||
u3_behn_ef_bake(u3_pier *pir_u);
|
||||
|
||||
/* u3_behn_ef_doze(): set or cancel timer
|
||||
*/
|
||||
void
|
||||
u3_behn_ef_doze(u3_noun wen);
|
||||
u3_behn_ef_doze(u3_pier *pir_u, u3_noun wen);
|
||||
|
||||
|
||||
/** HTTP server.
|
||||
|
12
vere/behn.c
12
vere/behn.c
@ -27,9 +27,10 @@ void
|
||||
u3_behn_io_init(u3_pier *pir_u)
|
||||
{
|
||||
u3_behn* teh_u = pir_u->teh_u;
|
||||
teh_u->alm = c3n;
|
||||
|
||||
uv_timer_init(u3L, &teh_u->tim_u);
|
||||
teh_u->alm = c3n;
|
||||
teh_u->tim_u.data = pir_u;
|
||||
}
|
||||
|
||||
/* u3_behn_io_exit(): terminate timer.
|
||||
@ -59,9 +60,9 @@ _behn_time_cb(uv_timer_t* tim_u)
|
||||
/* u3_behn_ef_doze(): set or cancel timer
|
||||
*/
|
||||
void
|
||||
u3_behn_ef_doze(u3_noun wen)
|
||||
u3_behn_ef_doze(u3_pier *pir_u, u3_noun wen)
|
||||
{
|
||||
u3_behn* teh_u = &u3_Host.teh_u;
|
||||
u3_behn* teh_u = pir_u->teh_u;
|
||||
|
||||
if ( c3y == teh_u->alm ) {
|
||||
uv_timer_stop(&teh_u->tim_u);
|
||||
@ -78,7 +79,6 @@ u3_behn_ef_doze(u3_noun wen)
|
||||
u3_noun now = u3_time_in_tv(&tim_tv);
|
||||
c3_d gap_d = u3_time_gap_ms(now, u3k(u3t(wen)));
|
||||
|
||||
teh_u->tim_u.data = pir_u;
|
||||
uv_timer_start(&teh_u->tim_u, _behn_time_cb, gap_d, 0);
|
||||
}
|
||||
|
||||
@ -88,9 +88,9 @@ u3_behn_ef_doze(u3_noun wen)
|
||||
/* u3_behn_ef_bake(): notify %behn that we're live
|
||||
*/
|
||||
void
|
||||
u3_behn_ef_bake(void)
|
||||
u3_behn_ef_bake(u3_pier *pir_u)
|
||||
{
|
||||
u3_noun pax = u3nq(u3_blip, c3__behn, u3k(u3A->sen), u3_nul);
|
||||
|
||||
u3v_plan(pax, u3nc(c3__born, u3_nul));
|
||||
u3_pier_work(pir_u, pax, u3nc(c3__born, u3_nul));
|
||||
}
|
||||
|
45
vere/pier.c
45
vere/pier.c
@ -991,9 +991,12 @@ _pier_disk_consolidate(u3_pier* pir_u,
|
||||
}
|
||||
|
||||
/* XX boot sequence woes
|
||||
** these are duplicated here from _pier_loop_wake()
|
||||
** because the order is important
|
||||
*/
|
||||
{
|
||||
u3_ames_ef_bake(pir_u);
|
||||
u3_behn_ef_bake(pir_u);
|
||||
}
|
||||
|
||||
/* insert filesystem install event
|
||||
@ -1662,6 +1665,10 @@ _pier_loop_wake(u3_pier* pir_u)
|
||||
u3_ames_ef_bake(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__behn);
|
||||
u3_behn_ef_bake(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__http);
|
||||
u3_http_io_talk();
|
||||
u3_http_ef_bake();
|
||||
@ -1711,38 +1718,6 @@ _pier_loop_exit(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* _pier_loop_poll(): update listeners.
|
||||
*/
|
||||
static void
|
||||
_pier_loop_poll(u3_pier* pir_u)
|
||||
{
|
||||
c3_l cod_l;
|
||||
|
||||
cod_l = u3a_lush(c3__ames);
|
||||
u3_ames_io_poll(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__http);
|
||||
u3_http_io_poll();
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__term);
|
||||
u3_term_io_poll();
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__save);
|
||||
u3_save_io_poll(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__unix);
|
||||
u3_unix_io_poll(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
|
||||
cod_l = u3a_lush(c3__behn);
|
||||
u3_behn_io_poll(pir_u);
|
||||
u3a_lop(cod_l);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* _pier_boot_seed(): build the cryptographic seed noun.
|
||||
*/
|
||||
@ -1858,11 +1833,7 @@ _pier_boot_complete(u3_pier* pir_u,
|
||||
static void
|
||||
_pier_loop_prepare(uv_prepare_t* pep_u)
|
||||
{
|
||||
pep_u = 0;
|
||||
{
|
||||
_pier_loop_poll(u3_pier_stub());
|
||||
_pier_loop_time();
|
||||
}
|
||||
_pier_loop_time();
|
||||
}
|
||||
|
||||
/* u3_pier_bail(): clean up all event state.
|
||||
|
@ -182,13 +182,13 @@ _reck_kick_http(u3_pier* pir_u,
|
||||
/* _reck_kick_behn(): apply packet network outputs.
|
||||
*/
|
||||
static u3_noun
|
||||
_reck_kick_behn(u3_noun pox, u3_noun fav)
|
||||
_reck_kick_behn(u3_pier* pir_u, u3_noun pox, u3_noun fav)
|
||||
{
|
||||
switch ( u3h(fav) ) {
|
||||
default: break;
|
||||
|
||||
case c3__doze: {
|
||||
u3_behn_ef_doze(u3k(u3t(fav)));
|
||||
u3_behn_ef_doze(pir_u, u3k(u3t(fav)));
|
||||
u3z(pox); u3z(fav); return c3y;
|
||||
} break;
|
||||
}
|
||||
@ -332,7 +332,7 @@ _reck_kick_spec(u3_pier* pir_u, u3_noun pox, u3_noun fav)
|
||||
} break;
|
||||
|
||||
case c3__behn: {
|
||||
return _reck_kick_behn(pox, fav);
|
||||
return _reck_kick_behn(pir_u, pox, fav);
|
||||
} break;
|
||||
|
||||
case c3__clay:
|
||||
|
Loading…
Reference in New Issue
Block a user