summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-10-19 00:33:00 -0700
committerChris Robinson <[email protected]>2009-10-19 00:33:00 -0700
commita4e3ca933b036102b1aed623015d007869416c7b (patch)
tree3fc68811f74bc39f8445f54b65937403ff116e4b
parent1fb58f9f8e54626036e4bbf09533e653881c118e (diff)
EINTR is not a fatal write error
-rw-r--r--Alc/oss.c4
-rw-r--r--Alc/solaris.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/Alc/oss.c b/Alc/oss.c
index fa463e0c..b5adfcbe 100644
--- a/Alc/oss.c
+++ b/Alc/oss.c
@@ -80,7 +80,7 @@ static ALuint OSSProc(ALvoid *ptr)
ALCdevice *pDevice = (ALCdevice*)ptr;
oss_data *data = (oss_data*)pDevice->ExtraData;
ALint frameSize;
- int wrote;
+ ssize_t wrote;
frameSize = aluChannelsFromFormat(pDevice->Format) *
aluBytesFromFormat(pDevice->Format);
@@ -96,7 +96,7 @@ static ALuint OSSProc(ALvoid *ptr)
wrote = write(data->fd, WritePtr, len);
if(wrote < 0)
{
- if(errno != EAGAIN && errno != EWOULDBLOCK)
+ if(errno != EAGAIN && errno != EWOULDBLOCK && errno != EINTR)
{
AL_PRINT("write failed: %s\n", strerror(errno));
aluHandleDisconnect(pDevice);
diff --git a/Alc/solaris.c b/Alc/solaris.c
index 988a91f0..695f8f86 100644
--- a/Alc/solaris.c
+++ b/Alc/solaris.c
@@ -71,7 +71,7 @@ static ALuint SolarisProc(ALvoid *ptr)
wrote = write(data->fd, WritePtr, len);
if(wrote < 0)
{
- if(errno != EAGAIN && errno != EWOULDBLOCK)
+ if(errno != EAGAIN && errno != EWOULDBLOCK && errno != EINTR)
{
AL_PRINT("write failed: %s\n", strerror(errno));
aluHandleDisconnect(pDevice);