… | |
… | |
587 | |
587 | |
588 | ecb_cold |
588 | ecb_cold |
589 | static void |
589 | static void |
590 | linuxaio_fork (EV_P) |
590 | linuxaio_fork (EV_P) |
591 | { |
591 | { |
592 | /* this frees all iocbs, which is very heavy-handed */ |
|
|
593 | linuxaio_destroy (EV_A); |
|
|
594 | linuxaio_submitcnt = 0; /* all pointers were invalidated */ |
592 | linuxaio_submitcnt = 0; /* all pointers were invalidated */ |
|
|
593 | linuxaio_free_iocp (EV_A); /* this frees all iocbs, which is very heavy-handed */ |
|
|
594 | evsys_io_destroy (linuxaio_ctx); /* fails in child, aio context is destroyed */ |
595 | |
595 | |
596 | linuxaio_iteration = 0; /* we start over in the child */ |
596 | linuxaio_iteration = 0; /* we start over in the child */ |
597 | |
597 | |
598 | while (linuxaio_io_setup (EV_A) < 0) |
598 | while (linuxaio_io_setup (EV_A) < 0) |
599 | ev_syserr ("(libev) linuxaio io_setup"); |
599 | ev_syserr ("(libev) linuxaio io_setup"); |