-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Concurrency.ReviewLockUsedOnlyForOperationsOnVariablesRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.Concurrency
Version: git
This rule checks if a lock is used only to perform operations on locals or fields. If the only purpose of that critical section is to make sure the variables are modified atomatically then the methods provided by System.Threading.Interlocked class will be more efficient.
Bad example:
lock (_lockObject) {
_counter++;
}
Good example:
Interlocked.Increment(_counter);
Bad example:
lock (_lockObject) {
_someSharedObject = anotherObject;
}
Good example:
Interlocked.Exchange(_someSharedObject, anotherObject);
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!