NOTE(ASSUMING_PROTECTED(DataExpr, ...))
この注釈は関数定義の内側でのみ許可され、指定された式によって表される変数が以下に示すいずれかの方法によって保護されていると、この関数が想定しているということをロック lint に伝えます。
各変数に対して適切なロックが保持されている。
変数はほかのスレッドから不可視となっている。
呼び出しが行われる際に、競合するスレッドがない。
これらの条件のいずれも真でない場合、ロック lint はエラーを生成します。
f(Foo* p, Bar* q) { NOTE(ASSUMING_PROTECTED(*p, *q)) p->a++; ... }