make sure we don't chew too much CPU when the outgoing fd is full

This commit is contained in:
Andrew Tridgell
2000-08-29 05:07:08 +00:00
parent 5c66303ad6
commit e92ee12893

12
io.c
View File

@@ -372,6 +372,7 @@ static void writefd_unbuffered(int fd,char *buf,int len)
if (ret == -1 &&
(errno == EWOULDBLOCK || errno == EAGAIN)) {
msleep(1);
continue;
}
@@ -463,6 +464,17 @@ void io_end_buffering(int fd)
}
}
/* some OSes have a bug where an exit causes the pending writes on
a socket to be flushed. Do an explicit shutdown to try to prevent this */
void io_shutdown(void)
{
if (multiplex_out_fd != -1) close(multiplex_out_fd);
if (io_error_fd != -1) close(io_error_fd);
multiplex_out_fd = -1;
io_error_fd = -1;
}
static void writefd(int fd,char *buf,int len)
{
stats.total_written += len;