可否中断原子操作
原子操作的本来是说明该操作要么完成要么压根就不作,但是看了atomic_inc_and_test的代码,我确感觉着实际上应该是有问题的 。定义:
static __inline__ int atomic_inc_and_test(atomic_t *v)
{
unsigned char c;
__asm__ __volatile__(
LOCK_PREFIX "incl %0; sete %1"
:"+m" (v->counter), "=qm" (c)
: : "memory");
return c != 0;
}
此时如果在执行完"incl %0,""之后,如果此时发生中断,那么是不是会出现内核不一致的现象呢。太困扰了。谢谢