Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2002 14:27:47 -0700 (PDT)
From:      Archie Cobbs <archie@dellroad.org>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        Archie Cobbs <archie@dellroad.org>, John Baldwin <jhb@FreeBSD.org>, davidx@viasoft.com.cn, freebsd-arch@FreeBSD.org, julian@elischer.org
Subject:   Re: Timeout and SMP race
Message-ID:  <200207102127.g6ALRl329601@arch20m.dellroad.org>
In-Reply-To: <3D2C9E8A.8D7657E7@mindspring.com> "from Terry Lambert at Jul 10, 2002 01:52:26 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert writes:
> > FWIW, here is an API I've used before. This handles all race
> > conditions and the 'other thread' question.
> 
> I like this timer API.
> 
> You need to add a timer_modify_interval (or something similar), so
> that intervals can be changed without having to destroy and recreate
> the timer, though, to avoid another potential race condition.

There's no race condition there. You can just do this to 'reset' a timer:

	timer_cancel(&foo->timer);
	timer_start(&foo->timer, ...);

Your timer_modify_interval() would just be an optimization of this.

I forgot to mention that timer_cancel() does nothing if *handlep == NULL.

-Archie

__________________________________________________________________________
Archie Cobbs     *     Packet Design     *     http://www.packetdesign.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207102127.g6ALRl329601>