… | |
… | |
1435 | static int |
1435 | static int |
1436 | eio__mlock (void *addr, size_t length) |
1436 | eio__mlock (void *addr, size_t length) |
1437 | { |
1437 | { |
1438 | eio_page_align (&addr, &length); |
1438 | eio_page_align (&addr, &length); |
1439 | |
1439 | |
1440 | mlock (addr, length); |
1440 | return mlock (addr, length); |
1441 | } |
1441 | } |
1442 | |
1442 | |
1443 | static int |
1443 | static int |
1444 | eio__mlockall (int flags) |
1444 | eio__mlockall (int flags) |
1445 | { |
1445 | { |
… | |
… | |
1454 | flags = 0 |
1454 | flags = 0 |
1455 | | (flags & EIO_MCL_CURRENT ? MCL_CURRENT : 0) |
1455 | | (flags & EIO_MCL_CURRENT ? MCL_CURRENT : 0) |
1456 | | (flags & EIO_MCL_FUTURE ? MCL_FUTURE : 0); |
1456 | | (flags & EIO_MCL_FUTURE ? MCL_FUTURE : 0); |
1457 | } |
1457 | } |
1458 | |
1458 | |
1459 | mlockall (flags); |
1459 | return mlockall (flags); |
1460 | } |
1460 | } |
1461 | #endif |
1461 | #endif |
1462 | |
1462 | |
1463 | #if !(_POSIX_MAPPED_FILES && _POSIX_SYNCHRONIZED_IO) |
1463 | #if !(_POSIX_MAPPED_FILES && _POSIX_SYNCHRONIZED_IO) |
1464 | # define eio__msync(a,b,c) ((errno = ENOSYS), -1) |
1464 | # define eio__msync(a,b,c) ((errno = ENOSYS), -1) |
… | |
… | |
1691 | |
1691 | |
1692 | case EIO_READDIR: eio__scandir (req, self); break; |
1692 | case EIO_READDIR: eio__scandir (req, self); break; |
1693 | |
1693 | |
1694 | case EIO_BUSY: |
1694 | case EIO_BUSY: |
1695 | #ifdef _WIN32 |
1695 | #ifdef _WIN32 |
1696 | Sleep (req->nv1 * 1000.); |
1696 | Sleep (req->nv1 * 1e3); |
1697 | #else |
1697 | #else |
1698 | { |
1698 | { |
1699 | struct timeval tv; |
1699 | struct timeval tv; |
1700 | |
1700 | |
1701 | tv.tv_sec = req->nv1; |
1701 | tv.tv_sec = req->nv1; |
1702 | tv.tv_usec = (req->nv1 - tv.tv_sec) * 1000000.; |
1702 | tv.tv_usec = (req->nv1 - tv.tv_sec) * 1e6; |
1703 | |
1703 | |
1704 | req->result = select (0, 0, 0, 0, &tv); |
1704 | req->result = select (0, 0, 0, 0, &tv); |
1705 | } |
1705 | } |
1706 | #endif |
1706 | #endif |
1707 | break; |
1707 | break; |