C++代码中的 __attribute__
在阅读陈硕老师的 muduo 网络库代码时,看到有以下的使用方式(GUARDED_BY ----> THREAD_ANNOTATION_ATTRIBUTE__ ----> __attribute__)。通过查阅资料得知:
__atrribute__ 是一个编译器指令,它指定声明的特征,允许更多的错误检查和高级优化。关键字__attribute__后跟两组括号(双括号使“宏输出”变得容易,尤其是多个属性)。括号内是逗号分隔的属性列表。__attribute__指令放在函数,变量和类型声明之后。[1]
如本例中的:
GUARDED_BY(mutex_)
THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(mutex_))
__attribute__((guarded_by(mutex_))
guarded_by属性是为了保证线程安全,使用该属性后,线程要使用相应变量,必须先锁定mutex_
使得pendingFunctors_是原子操作。
啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈!: $ git commit -m '[add]add commit' error: pathspec 'commit'' did not match any file(s) known to git 单引号也报错了,换成双引号可以。 OS:windows10
-YIN: 哈哈哈确实,一脸蒙,看到这里恍然大悟
csdn_newman: 可以的,同样的疏忽,我是多了个m
凳子花❀: 牛
huangjinkuaile: 简单明了,爱了