summaryrefslogtreecommitdiff
path: root/indra/llmessage/llbuffer.h
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2012-01-30 15:48:44 -0500
committerOz Linden <oz@lindenlab.com>2012-01-30 15:48:44 -0500
commit1ed8faee81804af2f0640784191f1deadfa9f50c (patch)
tree1bbee24e0c0c388b1f0544145db8eff1588546f7 /indra/llmessage/llbuffer.h
parent4ef9277761b5faee2825177112939b72c563a4ea (diff)
parent717a6f3306d9382ea252c3e0f243b785c9cae15a (diff)
merge changes for vmrg-219
Diffstat (limited to 'indra/llmessage/llbuffer.h')
-rw-r--r--indra/llmessage/llbuffer.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/indra/llmessage/llbuffer.h b/indra/llmessage/llbuffer.h
index 1c42b6fbc6..ccdb9fa7ee 100644
--- a/indra/llmessage/llbuffer.h
+++ b/indra/llmessage/llbuffer.h
@@ -39,6 +39,7 @@
#include <list>
#include <vector>
+class LLMutex;
/**
* @class LLChannelDescriptors
* @brief A way simple interface to accesss channels inside a buffer
@@ -564,6 +565,29 @@ public:
* @return Returns true on success.
*/
bool eraseSegment(const segment_iterator_t& iter);
+
+ /**
+ * @brief Lock the mutex if it exists
+ * This method locks mMutexp to make accessing LLBufferArray thread-safe
+ */
+ void lock();
+
+ /**
+ * @brief Unlock the mutex if it exists
+ */
+ void unlock();
+
+ /**
+ * @brief Return mMutexp
+ */
+ LLMutex* getMutex();
+
+ /**
+ * @brief Set LLBufferArray to be shared across threads or not
+ * This method is to create mMutexp if is threaded.
+ * @param threaded Indicates this LLBufferArray instance is shared across threads if true.
+ */
+ void setThreaded(bool threaded);
//@}
protected:
@@ -595,6 +619,7 @@ protected:
S32 mNextBaseChannel;
buffer_list_t mBuffers;
segment_list_t mSegments;
+ LLMutex* mMutexp;
};
#endif // LL_LLBUFFER_H