aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-08-12 08:20:29 +1000
committerSteve Bennett <steveb@workware.net.au>2023-08-12 08:20:54 +1000
commite1a70f27b21994374dd1754b98d40afe6ee87ca1 (patch)
treeda949e6f302ddf46e13c761cab8f863b20043eeb
parent4236d80d173728a1e6e7e8a013e19b564218e9ef (diff)
downloadjimtcl-e1a70f27b21994374dd1754b98d40afe6ee87ca1.zip
jimtcl-e1a70f27b21994374dd1754b98d40afe6ee87ca1.tar.gz
jimtcl-e1a70f27b21994374dd1754b98d40afe6ee87ca1.tar.bz2
aio: fix edge cases with error on blocking read
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim-aio.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/jim-aio.c b/jim-aio.c
index 093457f..bacaec6 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -816,9 +816,7 @@ static int aio_read_len(Jim_Interp *interp, AioFile *af, int nb, char *buf, size
if (JimCheckStreamError(interp, af)) {
return JIM_ERR;
}
- if (nb || af->timeout) {
- return JIM_OK;
- }
+ break;
}
return JIM_OK;
@@ -1105,14 +1103,9 @@ static int aio_cmd_gets(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
offset = len;
len = af->fops->reader(af, buf, AIO_BUF_LEN, nb);
if (len <= 0) {
- if (nb || af->timeout) {
- /* Stop when no more to read (non-blocking) or timeout and return an empty string */
- break;
- }
- }
- else {
- Jim_AppendString(interp, af->readbuf, buf, len);
+ break;
}
+ Jim_AppendString(interp, af->readbuf, buf, len);
}
aio_set_nonblocking(af, nb);