diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-01-12 14:44:17 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-01-12 14:44:17 +0000 |
| commit | e5107b2bd4b6167a39e4574769a0d992082296d5 (patch) | |
| tree | dc175883c353fb58253ac1bf15268919d9e4dd33 /lib/base | |
| parent | e74488aadbdfd34aea53166c9447016f3fa3ac29 (diff) | |
| download | enigma2-e5107b2bd4b6167a39e4574769a0d992082296d5.tar.gz enigma2-e5107b2bd4b6167a39e4574769a0d992082296d5.zip | |
deal correct with errno
Diffstat (limited to 'lib/base')
| -rw-r--r-- | lib/base/buffer.cpp | 9 | ||||
| -rw-r--r-- | lib/base/filepush.cpp | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/base/buffer.cpp b/lib/base/buffer.cpp index 9839b3e8..3a0a6a3d 100644 --- a/lib/base/buffer.cpp +++ b/lib/base/buffer.cpp @@ -127,8 +127,11 @@ int eIOBuffer::fromfile(int fd, int len) tc=allocationsize-buffer.back().len; r=::read(fd, buffer.back().data+buffer.back().len, tc); buffer.back().len+=r; - if (r < 0 && errno != EWOULDBLOCK ) - eDebug("couldn't read: %m"); + if (r < 0) + { + if (errno != EWOULDBLOCK && errno != EBUSY && errno != EINTR) + eDebug("couldn't read: %m"); + } else { len-=r; @@ -155,7 +158,7 @@ int eIOBuffer::tofile(int fd, int len) w=::write(fd, buffer.front().data+ptr, tc); if (w < 0) { - if (errno != EWOULDBLOCK) + if (errno != EWOULDBLOCK && errno != EBUSY && errno != EINTR) eDebug("write: %m"); w=0; } diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp index 2a894cf5..1999707f 100644 --- a/lib/base/filepush.cpp +++ b/lib/base/filepush.cpp @@ -109,7 +109,7 @@ void eFilePushThread::thread() // eDebug("wrote %d bytes", w); if (w <= 0) { - if (errno == EINTR) + if (errno == EINTR || errno == EAGAIN || errno == EBUSY) continue; eDebug("eFilePushThread WRITE ERROR"); sendEvent(evtWriteError); @@ -165,7 +165,7 @@ void eFilePushThread::thread() if (m_buf_end < 0) { m_buf_end = 0; - if (errno == EINTR) + if (errno == EINTR || errno == EBUSY || errno == EAGAIN) continue; if (errno == EOVERFLOW) { |
