【发布时间】:2010-11-23 19:02:28
【问题描述】:
任何人都知道 gcc 对作为原子内置函数的值传递的表达式做了什么。考虑下面的函数。 gcc会保证这个操作的原子性吗? (即使计算 2 << nr 需要额外的周期?
static inline test_and_set_bit(volatile void *addr, int nr, int set) {
__sync_fetch_and_or(addr, set ? 2 << nr : 0);
}
谢谢!
【问题讨论】: