为什么我们需要展位读写障碍?

问题描述 投票:1回答:1

为什么我们需要用相同的实现来定义两种类型的障碍?

For example code from io_uring in linux:

#if defined(__x86_64) || defined(__i386__)
#define read_barrier()  __asm__ __volatile__("":::"memory")
#define write_barrier() __asm__ __volatile__("":::"memory")
#else
c gcc linux-kernel
1个回答
0
投票

它们在x86上碰巧是相同的,但是在其他体系结构上它们可能会有所不同。因此,为了使代码具有可移植性,即使x86也需要为其提供单独的宏。

© www.soinside.com 2019 - 2024. All rights reserved.