mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-21 07:28:30 +03:00
initalizes persistence and starts the serf in parallel
This commit is contained in:
parent
6c932e5304
commit
e22312ea14
@ -1016,7 +1016,9 @@ _pier_disk_init_complete(u3_disk* log_u, c3_d evt_d)
|
||||
u3_pier* pir_u = log_u->pir_u;
|
||||
u3_lord* god_u = pir_u->god_u;
|
||||
|
||||
if ( (c3y == god_u->liv_o) && (c3n == pir_u->liv_o) ) {
|
||||
if ( (0 != god_u) &&
|
||||
(c3y == god_u->liv_o) &&
|
||||
(c3n == pir_u->liv_o) ) {
|
||||
_pier_boot_ready(pir_u);
|
||||
}
|
||||
}
|
||||
@ -1174,14 +1176,12 @@ _pier_work_play(u3_pier* pir_u,
|
||||
//
|
||||
god_u->rel_d = god_u->dun_d = god_u->sen_d = (lav_d - 1ULL);
|
||||
|
||||
// load all committed events
|
||||
//
|
||||
_pier_disk_create(pir_u);
|
||||
|
||||
{
|
||||
u3_disk* log_u = pir_u->log_u;
|
||||
|
||||
if ( (c3y == log_u->liv_o) && (c3n == pir_u->liv_o) ) {
|
||||
if ( (0 != log_u) &&
|
||||
(c3y == log_u->liv_o) &&
|
||||
(c3n == pir_u->liv_o) ) {
|
||||
_pier_boot_ready(pir_u);
|
||||
}
|
||||
}
|
||||
@ -1235,15 +1235,14 @@ _pier_work_poke(void* vod_p,
|
||||
if ( c3y != u3du(jar) ) {
|
||||
goto error;
|
||||
}
|
||||
else {
|
||||
/* the worker process starts with a %play task,
|
||||
** which tells us where to start playback
|
||||
** (and who we are, if it knows)
|
||||
*/
|
||||
if ( 0 == pir_u->log_u ) {
|
||||
|
||||
switch ( u3h(jar) ) {
|
||||
default: goto error;
|
||||
|
||||
// the worker process starts with a %play task,
|
||||
// which tells us where to start playback
|
||||
// (and who we are, if it knows) XX remove in favor of event-log header
|
||||
//
|
||||
case c3__play: {
|
||||
c3_d lav_d;
|
||||
c3_l mug_l;
|
||||
@ -1280,11 +1279,6 @@ _pier_work_poke(void* vod_p,
|
||||
u3z(jar); u3z(mat);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
switch ( u3h(jar) ) {
|
||||
default: goto error;
|
||||
|
||||
case c3__work: {
|
||||
if ( (c3n == u3r_qual(jar, 0, &p_jar, &q_jar, &r_jar)) ||
|
||||
@ -1320,6 +1314,7 @@ _pier_work_poke(void* vod_p,
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case c3__done: {
|
||||
if ( (c3n == u3r_qual(jar, 0, &p_jar, &q_jar, &r_jar)) ||
|
||||
(c3n == u3ud(p_jar)) ||
|
||||
@ -1343,8 +1338,7 @@ _pier_work_poke(void* vod_p,
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_pier_apply(pir_u);
|
||||
return;
|
||||
|
||||
@ -1452,6 +1446,12 @@ u3_pier_create(c3_w wag_w, c3_c* pax_c)
|
||||
pir_u->unx_u = c3_calloc(sizeof(u3_unix));
|
||||
pir_u->sav_u = c3_calloc(sizeof(u3_save));
|
||||
|
||||
// initialize persistence
|
||||
//
|
||||
if ( c3n == _pier_disk_create(pir_u) ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// start the serf process
|
||||
//
|
||||
if ( !(pir_u->god_u = _pier_work_create(pir_u)) ) {
|
||||
|
Loading…
Reference in New Issue
Block a user