| 1744 | } |
| 1745 | |
| 1746 | void |
| 1747 | aio_schedule(struct kaiocb *job, aio_handle_fn_t *func) |
| 1748 | { |
| 1749 | |
| 1750 | mtx_lock(&aio_job_mtx); |
| 1751 | if (!aio_set_cancel_function(job, aio_cancel_daemon_job)) { |
| 1752 | mtx_unlock(&aio_job_mtx); |
| 1753 | aio_cancel(job); |
| 1754 | return; |
| 1755 | } |
| 1756 | job->handle_fn = func; |
| 1757 | TAILQ_INSERT_TAIL(&aio_jobs, job, list); |
| 1758 | aio_kick_nowait(job->userproc); |
| 1759 | mtx_unlock(&aio_job_mtx); |
| 1760 | } |
| 1761 | |
| 1762 | static void |
| 1763 | aio_cancel_sync(struct kaiocb *job) |
no test coverage detected