/* _unix_hot_gain(): gain ship. */ static void _unix_hot_gain(u2_noun who, u2_bean mek) { u2_noun hox = u2_dc("scot", 'p', who); c3_c* hox_c = u2_cr_string(hox); c3_c* pax_c = _unix_down(u2_Host.ops_u.hom_c, hox_c + 1); DIR* rid_u = opendir(pax_c); if ( !rid_u ) { if ( u2_yes == mek ) { _unix_mkdir(pax_c); } else return; } else closedir(rid_u); // uL(fprintf(uH, "GAIN %s\n", pax_c)); free(hox_c); u2z(hox); u2_unix_acquire(pax_c); { u2_uhot* hot_u = malloc(sizeof(u2_uhot)); _unix_dir_watch(&hot_u->dir_u, 0, pax_c); u2_cr_mp(hot_u->who_mp, who); hot_u->nex_u = u2_Host.unx_u.hot_u; u2_Host.unx_u.hot_u = hot_u; } }
/* u2_unix_io_talk(): start listening for fs events. */ void u2_unix_io_talk() { u2_unix_acquire(u2_Host.cpu_c); u2_unix_ef_move(); uv_check_start(&u2_Host.unx_u.syn_u, _unix_ef_sync); }
/* u2_unix_io_talk(): start listening for fs events. */ void u2_unix_io_talk() { u2_unix_acquire(u2_Host.cpu_c); u2_unix_ef_move(); uv_prepare_start(&u2_Host.unx_u.pre_u, _unix_ef_sync); }
/* u2_unix_io_init(): initialize unix sync. */ void u2_unix_io_init(void) { u2_unix* unx_u = &u2_Host.unx_u; u2_unix_acquire(u2_Host.cpu_c); uv_timer_init(u2L, &unx_u->tim_u); unx_u->alm = u2_no; { u2_usig* sig_u; sig_u = malloc(sizeof(u2_usig)); uv_signal_init(u2L, &sig_u->sil_u); uv_signal_start(&sig_u->sil_u, _unix_sign_cb, SIGTERM); sig_u->nex_u = unx_u->sig_u; unx_u->sig_u = sig_u; } { u2_usig* sig_u; sig_u = malloc(sizeof(u2_usig)); uv_signal_init(u2L, &sig_u->sil_u); uv_signal_start(&sig_u->sil_u, _unix_sign_cb, SIGINT); sig_u->nex_u = unx_u->sig_u; unx_u->sig_u = sig_u; } { u2_usig* sig_u; sig_u = malloc(sizeof(u2_usig)); uv_signal_init(u2L, &sig_u->sil_u); uv_signal_start(&sig_u->sil_u, _unix_sign_cb, SIGWINCH); sig_u->nex_u = unx_u->sig_u; unx_u->sig_u = sig_u; } }