IO-AIO
view release on metacpan or search on metacpan
libeio/eio.c view on Meta::CPAN
case EIO_MLOCK: req->result = eio__mlock (req->ptr2, req->size); break;
case EIO_MLOCKALL: req->result = eio__mlockall (req->int1); break;
case EIO_FALLOCATE: req->result = eio__fallocate (req->int1, req->int2, req->offs, req->size); break;
case EIO_READDIR: eio__scandir (req, self); break;
case EIO_BUSY:
#ifdef _WIN32
Sleep (req->nv1 * 1e3);
#else
{
struct timeval tv;
tv.tv_sec = req->nv1;
tv.tv_usec = (req->nv1 - tv.tv_sec) * 1e6;
req->result = select (0, 0, 0, 0, &tv);
}
#endif
break;
#if 0
case EIO_GROUP:
abort (); /* handled in eio_request */
#endif
case EIO_NOP:
req->result = 0;
break;
case EIO_CUSTOM:
req->feed (req);
break;
default:
req->result = EIO_ENOSYS ();
break;
}
alloc_fail:
req->errorno = errno;
}
#ifndef EIO_NO_WRAPPERS
eio_req *eio_wd_open (const char *path, int pri, eio_cb cb, void *data)
{
REQ (EIO_WD_OPEN); PATH; SEND;
}
eio_req *eio_wd_close (eio_wd wd, int pri, eio_cb cb, void *data)
{
REQ (EIO_WD_CLOSE); req->wd = wd; SEND;
}
eio_req *eio_nop (int pri, eio_cb cb, void *data)
{
REQ (EIO_NOP); SEND;
}
eio_req *eio_busy (double delay, int pri, eio_cb cb, void *data)
{
REQ (EIO_BUSY); req->nv1 = delay; SEND;
}
eio_req *eio_sync (int pri, eio_cb cb, void *data)
{
REQ (EIO_SYNC); SEND;
}
eio_req *eio_fsync (int fd, int pri, eio_cb cb, void *data)
{
REQ (EIO_FSYNC); req->int1 = fd; SEND;
}
eio_req *eio_msync (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data)
{
REQ (EIO_MSYNC); req->ptr2 = addr; req->size = length; req->int1 = flags; SEND;
}
eio_req *eio_fdatasync (int fd, int pri, eio_cb cb, void *data)
{
REQ (EIO_FDATASYNC); req->int1 = fd; SEND;
}
eio_req *eio_syncfs (int fd, int pri, eio_cb cb, void *data)
{
REQ (EIO_SYNCFS); req->int1 = fd; SEND;
}
eio_req *eio_sync_file_range (int fd, off_t offset, size_t nbytes, unsigned int flags, int pri, eio_cb cb, void *data)
{
REQ (EIO_SYNC_FILE_RANGE); req->int1 = fd; req->offs = offset; req->size = nbytes; req->int2 = flags; SEND;
}
eio_req *eio_mtouch (void *addr, size_t length, int flags, int pri, eio_cb cb, void *data)
{
REQ (EIO_MTOUCH); req->ptr2 = addr; req->size = length; req->int1 = flags; SEND;
}
eio_req *eio_mlock (void *addr, size_t length, int pri, eio_cb cb, void *data)
{
REQ (EIO_MLOCK); req->ptr2 = addr; req->size = length; SEND;
}
eio_req *eio_mlockall (int flags, int pri, eio_cb cb, void *data)
{
REQ (EIO_MLOCKALL); req->int1 = flags; SEND;
}
eio_req *eio_fallocate (int fd, int mode, off_t offset, size_t len, int pri, eio_cb cb, void *data)
{
REQ (EIO_FALLOCATE); req->int1 = fd; req->int2 = mode; req->offs = offset; req->size = len; SEND;
}
eio_req *eio_close (int fd, int pri, eio_cb cb, void *data)
{
REQ (EIO_CLOSE); req->int1 = fd; SEND;
}
eio_req *eio_readahead (int fd, off_t offset, size_t length, int pri, eio_cb cb, void *data)
( run in 2.898 seconds using v1.01-cache-2.11-cpan-5837b0d9d2c )