Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2005 06:34:20 -0800
From:      Suleiman Souhlal <ssouhlal@FreeBSD.org>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        current@freebsd.org
Subject:   Re: td->td_critnest manipulations do not use atomic_add_int ?
Message-ID:  <43A8166C.9060401@FreeBSD.org>
In-Reply-To: <20051220032538.A33093@xorpc.icir.org>
References:  <20051220032538.A33093@xorpc.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello Luigi,

Luigi Rizzo wrote:
> as in the subject... i see that td->td_critnest (used to determine
> whether a thread can be preempted or not) is manipulated using
> plain ++ or -- instruction instead of the atomic_add_int().

This should be fine as it only gets modified by the current thread. If 
an interrupt comes while we are decreasing td_critnest back to 0, then 
we just don't get preempted immediately, but at the end of our quantum, 
or when someone else tries to preempt us, whichever comes first, which 
should be totally harmless.

--Suleiman



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