… | |
… | |
3607 | |
3607 | |
3608 | $RUNTIME += $TICK; |
3608 | $RUNTIME += $TICK; |
3609 | $NEXT_TICK += $TICK; |
3609 | $NEXT_TICK += $TICK; |
3610 | |
3610 | |
3611 | if ($NOW >= $NEXT_RUNTIME_WRITE) { |
3611 | if ($NOW >= $NEXT_RUNTIME_WRITE) { |
3612 | $NEXT_RUNTIME_WRITE = $NOW + 10; |
3612 | $NEXT_RUNTIME_WRITE = List::Util::max $NEXT_RUNTIME_WRITE + 10, $NOW + 5.; |
3613 | Coro::async_pool { |
3613 | Coro::async_pool { |
3614 | $Coro::current->{desc} = "runtime saver"; |
3614 | $Coro::current->{desc} = "runtime saver"; |
3615 | write_runtime |
3615 | write_runtime |
3616 | or warn "ERROR: unable to write runtime file: $!"; |
3616 | or warn "ERROR: unable to write runtime file: $!"; |
3617 | }; |
3617 | }; |
… | |
… | |
3634 | { |
3634 | { |
3635 | # configure BDB |
3635 | # configure BDB |
3636 | |
3636 | |
3637 | BDB::min_parallel 8; |
3637 | BDB::min_parallel 8; |
3638 | BDB::max_poll_reqs $TICK * 0.1; |
3638 | BDB::max_poll_reqs $TICK * 0.1; |
|
|
3639 | $Coro::BDB::WATCHER->priority (1); |
3639 | |
3640 | |
3640 | unless ($DB_ENV) { |
3641 | unless ($DB_ENV) { |
3641 | $DB_ENV = BDB::db_env_create; |
3642 | $DB_ENV = BDB::db_env_create; |
3642 | $DB_ENV->set_flags (BDB::AUTO_COMMIT | BDB::REGION_INIT | BDB::TXN_NOSYNC |
3643 | $DB_ENV->set_flags (BDB::AUTO_COMMIT | BDB::REGION_INIT | BDB::TXN_NOSYNC |
3643 | | BDB::LOG_AUTOREMOVE, 1); |
3644 | | BDB::LOG_AUTOREMOVE, 1); |
… | |
… | |
3674 | { |
3675 | { |
3675 | # configure IO::AIO |
3676 | # configure IO::AIO |
3676 | |
3677 | |
3677 | IO::AIO::min_parallel 8; |
3678 | IO::AIO::min_parallel 8; |
3678 | IO::AIO::max_poll_time $TICK * 0.1; |
3679 | IO::AIO::max_poll_time $TICK * 0.1; |
|
|
3680 | $Coro::AIO::WATCHER->priority (1); |
3679 | } |
3681 | } |
3680 | |
3682 | |
3681 | my $_log_backtrace; |
3683 | my $_log_backtrace; |
3682 | |
3684 | |
3683 | sub _log_backtrace { |
3685 | sub _log_backtrace { |