副作用 (side effect) とは、ロックの状態が関数によって変化し、関数が制御を返す前に、その変化が復帰しないことを指します。関数にロックの副作用が含まれ、その副作用についてのアサーションが作成されていない場合、あるいは、実際の副作用がアサーションの内容と異なる場合、解析中に警告が発行されます。その後は、予期せぬ副作用はまったく起こらないものとして、解析は続行されます。
副作用には逆転と呼ばれる種類もあります。詳細については、 「ロックの逆転」、および「locks」または「funcs」サブコマンドを参照してください。
関数によってもたらされる副作用が呼び出しごとに異なる場合も (たとえば、条件付きの副作用など)、警告が発せられます。キーワード acquired in、released in、upgraded in、downgraded in は、関数についてアサートされているロック副作用の種類を明らかにします。これらのキーワードは、スレッドライブラリインタフェース、DDI および DKI カーネルファンクションを介して利用が可能な副作用に対応しています (「mutex(3T)」、「rwlock(3T)」、「mutex(9F)」、「rwlock(9F)」を 参照)。
rwlocks に対する副作用のアサーションは、オプション引数 read を取ります。read が付いている場合、その副作用は、その関数がそのロックに対して読み取りレベルのアクセスを獲得することになります。read がない場合は、書き込みレベルのアクセスを獲得することになります。