diff options
author | root <root> | 2009-06-12 00:43:16 +0000 |
---|---|---|
committer | root <root> | 2009-06-12 00:43:16 +0000 |
commit | f43b3a07245c5e1466f7f810f010298f7fa2dbe9 (patch) | |
tree | e3077dfa65cea4c3c8d29695807ef6f8f6bd5f06 | |
parent | e4d53612e13dc9aae6ac549059f3ffc98c866f34 (diff) |
*** empty log message ***
-rw-r--r-- | Changes | 2 | ||||
-rw-r--r-- | eio.c | 8 | ||||
-rw-r--r-- | eio.h | 4 |
3 files changed, 10 insertions, 4 deletions
@@ -6,6 +6,8 @@ TODO: maybe add mincore support? available on at leats darwin, solaris, linux, f - readdir: correctly handle malloc failures. - readdir: new flags argument, can return inode and possibly filetype, can sort in various ways. + - readdir: stop immediately when cancelled, do + not continue reading the directory. - added EIO_STACKSIZE. - added msync, mtouch support (untested). - added sync_file_range (untested). @@ -1213,9 +1213,13 @@ eio__scandir (eio_req *req, etp_worker *self) namesoffs += len; ++dentoffs; } + + if (EIO_CANCELLED (req)) + { + errno = ECANCELED; + break; + } } - else - req->result = -1; } #if !(_POSIX_MAPPED_FILES && _POSIX_SYNCHRONIZED_IO) @@ -78,7 +78,7 @@ enum eio_dtype { EIO_DT_UNKNOWN = 0, EIO_DT_FIFO = 1, EIO_DT_CHR = 2, - EIO_DT_MPC = 3, /* multiplexed char device (v7+Coherent) */ + EIO_DT_MPC = 3, /* multiplexed char device (v7+coherent) */ EIO_DT_DIR = 4, EIO_DT_NAM = 5, /* xenix special named file */ EIO_DT_BLK = 6, @@ -91,7 +91,7 @@ enum eio_dtype { EIO_DT_SOCK = 12, EIO_DT_DOOR = 13, /* solaris door */ EIO_DT_WHT = 14, - EIO_DT_MAX = 15 /* highest DT_VALUE ever, hopefully */ + EIO_DT_MAX = 15 /* highest DT_VALUE ever, hopefully */ }; struct eio_dirent { |