aboutsummaryrefslogtreecommitdiff
path: root/lib/base
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-01-12 14:44:17 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-01-12 14:44:17 +0000
commite5107b2bd4b6167a39e4574769a0d992082296d5 (patch)
treedc175883c353fb58253ac1bf15268919d9e4dd33 /lib/base
parente74488aadbdfd34aea53166c9447016f3fa3ac29 (diff)
downloadenigma2-e5107b2bd4b6167a39e4574769a0d992082296d5.tar.gz
enigma2-e5107b2bd4b6167a39e4574769a0d992082296d5.zip
deal correct with errno
Diffstat (limited to 'lib/base')
-rw-r--r--lib/base/buffer.cpp9
-rw-r--r--lib/base/filepush.cpp4
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)
{