summaryrefslogtreecommitdiff
path: root/src/mongo/db/free_mon/free_mon_message.h
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2018-10-26 11:36:37 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2018-10-26 11:36:37 -0400
commiteb2157a3d7c6b02d7d8f873afafd630f3d9aed4f (patch)
treed82e14ca27cd428979adcf66bffb02daf0d5f2de /src/mongo/db/free_mon/free_mon_message.h
parenta15cf62de1d5de973160ec1a23609aaf6f0f500f (diff)
downloadmongo-eb2157a3d7c6b02d7d8f873afafd630f3d9aed4f.tar.gz
SERVER-37685 Ensure free monitoring queue preserves FIFO on messages with same deadline
Diffstat (limited to 'src/mongo/db/free_mon/free_mon_message.h')
-rw-r--r--src/mongo/db/free_mon/free_mon_message.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mongo/db/free_mon/free_mon_message.h b/src/mongo/db/free_mon/free_mon_message.h
index 197cea4d300..f5857c973a4 100644
--- a/src/mongo/db/free_mon/free_mon_message.h
+++ b/src/mongo/db/free_mon/free_mon_message.h
@@ -180,6 +180,20 @@ public:
return _deadline;
}
+ /**
+ * Get the unique message id for FIFO ordering messages with the same deadline.
+ */
+ uint64_t getId() const {
+ return _id;
+ }
+
+ /**
+ * Set the unique message id.
+ */
+ void setId(uint64_t id) {
+ _id = id;
+ }
+
public:
FreeMonMessage(FreeMonMessageType type, Date_t deadline) : _type(type), _deadline(deadline) {}
@@ -189,6 +203,10 @@ private:
// Deadline for when to process message
Date_t _deadline;
+
+ // Process-wide unique message id to ensure messages with the same deadlines are processed in
+ // FIFO order.
+ uint64_t _id{0};
};