Re: td->td_critnest manipulations do not use atomic_add_int ?

From: Suleiman Souhlal <ssouhlal_at_FreeBSD.org>
Date: Tue, 20 Dec 2005 06:34:20 -0800
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
Received on Tue Dec 20 2005 - 13:35:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:49 UTC