--- IO-AIO/AIO.xs 2010/12/02 10:04:47 1.176 +++ IO-AIO/AIO.xs 2011/01/07 21:45:42 1.178 @@ -18,7 +18,7 @@ #include #include -#if _POSIX_MEMLOCK || _POSIX_MAPPED_FILES +#if _POSIX_MEMLOCK || _POSIX_MEMLOCK_RANGE || _POSIX_MAPPED_FILES # include #endif @@ -355,6 +355,7 @@ { sv_result = sv_result_cache; sv_result_cache = 0; SvIV_set (sv_result, req->result); + SvIOK_only (sv_result); } else { @@ -528,7 +529,7 @@ } break; - case EIO_DUP2: /* EIO_DUP2 actually means aio_close(), su fudge result value */ + case EIO_DUP2: /* EIO_DUP2 actually means aio_close(), so fudge result value */ if (req->result > 0) SvIV_set (sv_result, 0); /* FALLTHROUGH */ @@ -1525,7 +1526,7 @@ addr = (void *)(((intptr_t)addr) + offset); eio_page_align (&addr, &len); -#if _POSIX_MEMLOCK +#if _POSIX_MEMLOCK_RANGE RETVAL = munlock (addr, len); #else RETVAL = ((errno = ENOSYS), -1);