Skip to content

Commit

Permalink
slirp: Clean up timeout handling around slirp_select_fill/poll
Browse files Browse the repository at this point in the history
Again lot of dead code. Remove it.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
  • Loading branch information
jan-kiszka authored and Anthony Liguori committed Jun 29, 2009
1 parent d6cf84e commit f1d99bb
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 39 deletions.
2 changes: 0 additions & 2 deletions slirp/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
int slirp_debug = DBG_CALL|DBG_MISC|DBG_ERROR;
#endif

u_int curtime, time_fasttimo, last_slowtimo;

struct quehead {
struct quehead *qh_link;
struct quehead *qh_rlink;
Expand Down
1 change: 0 additions & 1 deletion slirp/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ struct ex_list {
};

extern struct ex_list *exec_list;
extern u_int time_fasttimo, last_slowtimo;

#ifndef HAVE_STRDUP
char *strdup _P((const char *));
Expand Down
40 changes: 4 additions & 36 deletions slirp/slirp.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,16 @@ static struct in_addr client_ipaddr;
static const uint8_t zero_ethaddr[6] = { 0, 0, 0, 0, 0, 0 };

int slirp_restrict;
static int do_slowtimo;
int link_up;
struct ex_list *exec_list;

/* XXX: suppress those select globals */
fd_set *global_readfds, *global_writefds, *global_xfds;

u_int curtime;
static u_int time_fasttimo, last_slowtimo;
static int do_slowtimo;

char slirp_hostname[33];

#ifdef _WIN32
Expand Down Expand Up @@ -267,9 +270,7 @@ void slirp_select_fill(int *pnfds,
fd_set *readfds, fd_set *writefds, fd_set *xfds)
{
struct socket *so, *so_next;
struct timeval timeout;
int nfds;
int tmp_time;

if (!link_up) {
return;
Expand Down Expand Up @@ -380,39 +381,6 @@ void slirp_select_fill(int *pnfds,
}
}

/*
* Setup timeout to use minimum CPU usage, especially when idle
*/

/*
* First, see the timeout needed by *timo
*/
timeout.tv_sec = 0;
timeout.tv_usec = -1;
/*
* If a slowtimo is needed, set timeout to 500ms from the last
* slow timeout. If a fast timeout is needed, set timeout within
* 200ms of when it was requested.
*/
if (do_slowtimo) {
/* XXX + 10000 because some select()'s aren't that accurate */
timeout.tv_usec = ((500 - (curtime - last_slowtimo)) * 1000) + 10000;
if (timeout.tv_usec < 0)
timeout.tv_usec = 0;
else if (timeout.tv_usec > 510000)
timeout.tv_usec = 510000;

/* Can only fasttimo if we also slowtimo */
if (time_fasttimo) {
tmp_time = (200 - (curtime - time_fasttimo)) * 1000;
if (tmp_time < 0)
tmp_time = 0;

/* Choose the smallest of the 2 */
if (tmp_time < timeout.tv_usec)
timeout.tv_usec = (u_int)tmp_time;
}
}
*pnfds = nfds;
}

Expand Down

0 comments on commit f1d99bb

Please sign in to comment.