Date: Wed, 02 Jul 1997 00:06:46 -0700 (PDT) From: Simon Shapiro <Shimon@i-Connect.Net> To: freebsd-hackers@freebsd.org Subject: timeout/untimeout - How? Message-ID: <XFMail.970702000646.Shimon@i-Connect.Net>
next in thread | raw e-mail | index | archive | help
I KNOW I am doing something foolish. But what?
[at the beginning of a driver]
...
static void
dpt_timeout_losers(void *dpt);
...
[in dpt_scsi_cmd]
...
ospl = splbio();
if ( !(dpt->state & DPT_STATE_LOSERS_TIMEOUT_SET) ) {
dpt->state |= DPT_STATE_LOSERS_TIMEOUT_SET;
timeout((timeout_func_t)dpt_timeout_losers, dpt, hz * 10);
}
splx(ospl);
...
static void
dpt_timeout_losers(void *arg)
{
dpt_softc_t *dpt = (dpt_softc_t *)arg;
if ( !(dpt->state & DPT_STATE_LOSERS_TIMEOUT_ACTIVE) )
dpt_abort_losers(dpt);
timeout((timeout_func_t)dpt_timeout_losers, (caddr_t)dpt, hz * 10);
}
What I am trying to do is have the function dpt_abort_losers() run once
every 10 seconds. (Please don't ask why - nasty hardware problems)
What I am getting is a panic due to timeout table being full.
Where is my stupidity?
Simon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970702000646.Shimon>
