ロック lint に、階層的なロック関係が存在することを知らせます。特定の状況におけるパフォーマンスを改善するため、読み取り書き込みロックは、ほかのロック (相互排他あるいは読み取り書き込み) と組み合わせて使用されることがあります。
カバーと呼ばれる読み取り書き込みロックは、カバーされる側であるほかのロックが保持されている間、必ず保持されていなければなりません。これは、読み込みアクセスに対するカバーを保持していない間に、カバーされる側のロックを保持することは規則に反する (こうした表記規則の下では) ということです。
書き込みアクセスに対するカバーを保持している間は、カバーされる側のロックを保持せずに、カバーされる側のロックの 1 つによって保護された変数にアクセスすることが可能です。ほかのスレッドがカバーされる側のロックを保持することは不可能であるため (そのスレッドはカバーも保持していなければならないため)、こうした操作は可能となります。カバー上に集中した競合が存在しない限り、カバーされる側のロックを保持しないことによって節約される時間の分だけ、パフォーマンスは向上します。
assert rwlock covers を利用することで、カバーされる側のロックではなく、書き込みアクセスに対するカバーを保持しながらスレッドが変数にアクセスする場合に、ロック lint によるエラーメッセージの表示を防止できます。また、カバーが保持されていないときは、カバーされる側のロックは絶対に保持されていないというルールのチェックを可能にします。