Lines Matching refs:aiocbp

27 void read_func(struct aiocb *aiocbp) {
28 aiocbp->ret = TEMP_FAILURE_RETRY(pread(aiocbp->aio_fildes,
29 aiocbp->aio_buf, aiocbp->aio_nbytes, aiocbp->aio_offset));
30 if (aiocbp->ret == -1) aiocbp->error = errno;
33 void write_func(struct aiocb *aiocbp) {
34 aiocbp->ret = TEMP_FAILURE_RETRY(pwrite(aiocbp->aio_fildes,
35 aiocbp->aio_buf, aiocbp->aio_nbytes, aiocbp->aio_offset));
36 if (aiocbp->ret == -1) aiocbp->error = errno;
39 void splice_read_func(struct aiocb *aiocbp) {
40 loff_t long_offset = aiocbp->aio_offset;
41 aiocbp->ret = TEMP_FAILURE_RETRY(splice(aiocbp->aio_fildes,
42 &long_offset, aiocbp->aio_sink,
43 NULL, aiocbp->aio_nbytes, 0));
44 if (aiocbp->ret == -1) aiocbp->error = errno;
47 void splice_write_func(struct aiocb *aiocbp) {
48 loff_t long_offset = aiocbp->aio_offset;
49 aiocbp->ret = TEMP_FAILURE_RETRY(splice(aiocbp->aio_fildes, NULL,
50 aiocbp->aio_sink, &long_offset,
51 aiocbp->aio_nbytes, 0));
52 if (aiocbp->ret == -1) aiocbp->error = errno;
67 std::unique_ptr<struct aiocb> aiocbp = std::move(queue.front());
71 splice_write_func(aiocbp.get());
72 close(aiocbp->aio_fildes);
83 std::unique_ptr<struct aiocb> aiocbp = std::move(queue.front());
87 aiocbp->ret = TEMP_FAILURE_RETRY(pwrite(aiocbp->aio_fildes,
88 aiocbp->aio_pool_buf.get(), aiocbp->aio_nbytes, aiocbp->aio_offset));
89 if (aiocbp->ret == -1) aiocbp->error = errno;
133 int aio_pool_write(struct aiocb *aiocbp) {
136 queue.push(std::unique_ptr<struct aiocb>(aiocbp));
142 int aio_read(struct aiocb *aiocbp) {
143 aiocbp->thread = std::thread(read_func, aiocbp);
147 int aio_write(struct aiocb *aiocbp) {
148 aiocbp->thread = std::thread(write_func, aiocbp);
152 int aio_splice_read(struct aiocb *aiocbp) {
153 aiocbp->thread = std::thread(splice_read_func, aiocbp);
157 int aio_splice_write(struct aiocb *aiocbp) {
158 aiocbp->thread = std::thread(splice_write_func, aiocbp);
162 int aio_error(const struct aiocb *aiocbp) {
163 return aiocbp->error;
166 ssize_t aio_return(struct aiocb *aiocbp) {
167 return aiocbp->ret;
170 int aio_suspend(struct aiocb *aiocbp[], int n,
173 aiocbp[i]->thread.join();