summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Input.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Input.cc b/src/Input.cc
index c1b7b98..2a87a5d 100644
--- a/src/Input.cc
+++ b/src/Input.cc
@@ -220,8 +220,12 @@ class AsyncOpRead : public Balau::AsyncOperation {
AsyncOpRead(int fd, void * buf, size_t count, off_t offset, cbResults_t * results) : m_fd(fd), m_buf(buf), m_count(count), m_offset(offset), m_results(results) { }
virtual void run() {
#ifdef _MSC_VER
- IAssert(0, "Not yet implemented");
- const ssize_t r = 0;
+ off_t offset = lseek(m_fd, m_offset, SEEK_SET);
+ if (offset < 0) {
+ m_results->errorno = errno;
+ return;
+ }
+ const ssize_t r = m_results->result = read(m_fd, m_buf, m_count);
#else
const ssize_t r = m_results->result = pread(m_fd, m_buf, m_count, m_offset);
#endif