--- slim/trunk/server/Slim/Player/Source.pm 2006-09-15 02:13:36.000000000 -0400 +++ /opt/slimserver/Slim/Player/Source.pm 2006-09-16 11:29:41.000000000 -0400 @@ -21,11 +21,12 @@ BEGIN { if ($^O =~ /Win32/) { *EINTR = sub () { 10004 }; + *ECHILD = sub () { 10010 }; *EWOULDBLOCK = sub () { 10035 }; *EINPROGRESS = sub () { 10036 }; } else { require Errno; - import Errno qw(EWOULDBLOCK EINPROGRESS EINTR); + import Errno qw(EWOULDBLOCK EINPROGRESS EINTR ECHILD); } } @@ -1777,6 +1778,11 @@ $::d_source && msg("Got EINTR - will try again later.\n"); return undef; + } elsif ($! == ECHILD) { + + $::d_source && msg("Got ECHILD - for some reason.\n"); + return undef; + } else { $::d_source && msg("readlen undef: ($!)" . ($! + 0) . "\n");