… | |
… | |
290 | package DC::DB::Server; |
290 | package DC::DB::Server; |
291 | |
291 | |
292 | use common::sense; |
292 | use common::sense; |
293 | |
293 | |
294 | use EV (); |
294 | use EV (); |
|
|
295 | use AnyEvent (); |
295 | use Fcntl; |
296 | use Fcntl; |
296 | |
297 | |
297 | our %CB; |
298 | our %CB; |
298 | our $FH; |
299 | our $FH; |
299 | our $ID = "aaa0"; |
300 | our $ID = "aaa0"; |
… | |
… | |
466 | close $fh; |
467 | close $fh; |
467 | DC::fh_nonblocking $FH, 1; |
468 | DC::fh_nonblocking $FH, 1; |
468 | |
469 | |
469 | $CB{die} = sub { die shift }; |
470 | $CB{die} = sub { die shift }; |
470 | |
471 | |
471 | $fh_r_watcher = EV::io $FH, EV::READ , \&fh_read; |
472 | $fh_r_watcher = AE::io $FH, 0, \&fh_read; |
472 | $fh_w_watcher = EV::io $FH, EV::WRITE, \&fh_write; |
473 | $fh_w_watcher = EV::io $FH, EV::WRITE, \&fh_write; |
473 | } |
474 | } |
474 | |
475 | |
475 | sub stop { |
476 | sub stop { |
476 | close $FH; |
477 | close $FH; |
… | |
… | |
504 | DC::error "FATAL: facemap is not a 1:1 mapping, please report this and delete your $DB_HOME directory!\n";#d# |
505 | DC::error "FATAL: facemap is not a 1:1 mapping, please report this and delete your $DB_HOME directory!\n";#d# |
505 | }#d# |
506 | }#d# |
506 | }; |
507 | }; |
507 | } |
508 | } |
508 | |
509 | |
509 | $WATCHER = EV::io BDB::poll_fileno, EV::READ, \&BDB::poll_cb; |
510 | $WATCHER = AE::io BDB::poll_fileno, 0, \&BDB::poll_cb; |
510 | $SYNC = EV::timer_ns 0, 60, sub { |
511 | $SYNC = EV::timer_ns 0, 60, sub { |
511 | $_[0]->stop; |
512 | $_[0]->stop; |
512 | db_env_txn_checkpoint $DB_ENV, 0, 0, 0, sub { }; |
513 | db_env_txn_checkpoint $DB_ENV, 0, 0, 0, sub { }; |
513 | }; |
514 | }; |
514 | } |
515 | } |