diff options
author | Gregor Jasny <gjasny@googlemail.com> | 2018-12-08 19:32:10 +0100 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2019-08-27 17:02:34 -0700 |
commit | dc41d4fa76bc23d81eb81dcad3a12a8e9241dcd2 (patch) | |
tree | 11e1df1955179563d438b1cff703922cf9a33762 /extstore.c | |
parent | f2c0f096addc92f2c2528ea5ac29967e689dfed9 (diff) | |
download | memcached-dc41d4fa76bc23d81eb81dcad3a12a8e9241dcd2.tar.gz |
extstore: emulate pread(v) for macOS
Diffstat (limited to 'extstore.c')
-rw-r--r-- | extstore.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -773,11 +773,22 @@ static void *extstore_io_thread(void *arg) { } pthread_mutex_unlock(&p->mutex); if (do_op) { +#ifdef __APPLE__ + ret = lseek(p->fd, SEEK_SET, p->offset + cur_io->offset); + if (ret >= 0) { + if (cur_io->iov == NULL) { + ret = read(p->fd, cur_io->buf, cur_io->len); + } else { + ret = readv(p->fd, cur_io->iov, cur_io->iovcnt); + } + } +#else if (cur_io->iov == NULL) { ret = pread(p->fd, cur_io->buf, cur_io->len, p->offset + cur_io->offset); } else { ret = preadv(p->fd, cur_io->iov, cur_io->iovcnt, p->offset + cur_io->offset); } +#endif } break; case OBJ_IO_WRITE: |