summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/lock_request_list.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/concurrency/lock_request_list.h')
-rw-r--r--src/mongo/db/concurrency/lock_request_list.h127
1 files changed, 61 insertions, 66 deletions
diff --git a/src/mongo/db/concurrency/lock_request_list.h b/src/mongo/db/concurrency/lock_request_list.h
index 066a09dcd98..3501504ac4f 100644
--- a/src/mongo/db/concurrency/lock_request_list.h
+++ b/src/mongo/db/concurrency/lock_request_list.h
@@ -33,81 +33,76 @@
namespace mongo {
- /**
- * Simple intrusive list implementation for the lock's granted and conflicting lists. Does not
- * own its contents, just uses the intrusive pointers on the LockRequest structure to link them
- * together. Therefore requests must outlive this list.
- *
- * Intentionally implemented as a POD in order to avoid constructor/destructor invocations.
- *
- * NOTE: This class should not be used for generic purposes and should not be used outside of
- * the Lock Manager library.
- */
- class LockRequestList {
- public:
-
- void push_front(LockRequest* request) {
- // Sanity check that we do not reuse entries without cleaning them up
- invariant(request->next == NULL);
- invariant(request->prev == NULL);
-
- if (_front == NULL) {
- _front = _back = request;
- }
- else {
- request->next = _front;
-
- _front->prev = request;
- _front = request;
- }
+/**
+ * Simple intrusive list implementation for the lock's granted and conflicting lists. Does not
+ * own its contents, just uses the intrusive pointers on the LockRequest structure to link them
+ * together. Therefore requests must outlive this list.
+ *
+ * Intentionally implemented as a POD in order to avoid constructor/destructor invocations.
+ *
+ * NOTE: This class should not be used for generic purposes and should not be used outside of
+ * the Lock Manager library.
+ */
+class LockRequestList {
+public:
+ void push_front(LockRequest* request) {
+ // Sanity check that we do not reuse entries without cleaning them up
+ invariant(request->next == NULL);
+ invariant(request->prev == NULL);
+
+ if (_front == NULL) {
+ _front = _back = request;
+ } else {
+ request->next = _front;
+
+ _front->prev = request;
+ _front = request;
}
+ }
- void push_back(LockRequest* request) {
- // Sanity check that we do not reuse entries without cleaning them up
- invariant(request->next == NULL);
- invariant(request->prev == NULL);
+ void push_back(LockRequest* request) {
+ // Sanity check that we do not reuse entries without cleaning them up
+ invariant(request->next == NULL);
+ invariant(request->prev == NULL);
- if (_front == NULL) {
- _front = _back = request;
- }
- else {
- request->prev = _back;
+ if (_front == NULL) {
+ _front = _back = request;
+ } else {
+ request->prev = _back;
- _back->next = request;
- _back = request;
- }
+ _back->next = request;
+ _back = request;
}
+ }
- void remove(LockRequest* request) {
- if (request->prev != NULL) {
- request->prev->next = request->next;
- }
- else {
- _front = request->next;
- }
-
- if (request->next != NULL) {
- request->next->prev = request->prev;
- }
- else {
- _back = request->prev;
- }
-
- request->prev = NULL;
- request->next = NULL;
+ void remove(LockRequest* request) {
+ if (request->prev != NULL) {
+ request->prev->next = request->next;
+ } else {
+ _front = request->next;
}
- void reset() {
- _front = _back = NULL;
+ if (request->next != NULL) {
+ request->next->prev = request->prev;
+ } else {
+ _back = request->prev;
}
- bool empty() const {
- return _front == NULL;
- }
+ request->prev = NULL;
+ request->next = NULL;
+ }
+
+ void reset() {
+ _front = _back = NULL;
+ }
+
+ bool empty() const {
+ return _front == NULL;
+ }
- // Pointers to the beginning and the end of the list
- LockRequest* _front;
- LockRequest* _back;
- };
+ // Pointers to the beginning and the end of the list
+ LockRequest* _front;
+ LockRequest* _back;
+};
-} // namespace mongo
+} // namespace mongo