… | |
… | |
444 | warn $@ if $@; |
444 | warn $@ if $@; |
445 | undef $busy; |
445 | undef $busy; |
446 | })->prio (Coro::PRIO_MAX); |
446 | })->prio (Coro::PRIO_MAX); |
447 | |
447 | |
448 | while ($busy) { |
448 | while ($busy) { |
|
|
449 | if (Coro::nready) { |
|
|
450 | Coro::cede_notself; |
|
|
451 | } else { |
449 | Coro::cede or Event::one_event; |
452 | Event::one_event; |
|
|
453 | } |
450 | } |
454 | } |
451 | |
455 | |
452 | $time = Event::time - $time; |
456 | $time = Event::time - $time; |
453 | |
457 | |
454 | LOG llevError | logBacktrace, Carp::longmess "long sync job" |
458 | LOG llevError | logBacktrace, Carp::longmess "long sync job" |
… | |
… | |
3369 | |
3373 | |
3370 | warn "flushing outstanding aio requests"; |
3374 | warn "flushing outstanding aio requests"; |
3371 | for (;;) { |
3375 | for (;;) { |
3372 | BDB::flush; |
3376 | BDB::flush; |
3373 | IO::AIO::flush; |
3377 | IO::AIO::flush; |
3374 | Coro::cede; |
3378 | Coro::cede_notself; |
3375 | last unless IO::AIO::nreqs || BDB::nreqs; |
3379 | last unless IO::AIO::nreqs || BDB::nreqs; |
3376 | warn "iterate..."; |
3380 | warn "iterate..."; |
3377 | } |
3381 | } |
3378 | |
3382 | |
3379 | ++$RELOAD; |
3383 | ++$RELOAD; |