diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sshfs.c | 4 |
2 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2007-04-18 Miklos Szeredi <miklos@szeredi.hu> + + * Fix crash within gdb, caused by sem_wait() returning with an + error on interrupt. Reported by Dimitrios Apostolou + 2007-02-28 Miklos Szeredi <miklos@szeredi.hu> * Don't set DISPLAY environment variable to "", because it breaks @@ -1299,7 +1299,7 @@ static int sftp_request_wait(struct request *req, uint8_t type, err = req->error; goto out; } - sem_wait(&req->ready); + while (sem_wait(&req->ready)); if (req->error) { err = req->error; goto out; @@ -2021,7 +2021,7 @@ static void submit_read(struct sshfs_file *sf, size_t size, off_t offset, static int wait_chunk(struct read_chunk *chunk, char *buf, size_t size) { int res; - sem_wait(&chunk->ready); + while (sem_wait(&chunk->ready)); res = chunk->res; if (res > 0) { if ((size_t) res > size) |