diff options
Diffstat (limited to 'source/core')
| -rw-r--r-- | source/core/slang-writer.cpp | 2 | ||||
| -rw-r--r-- | source/core/slang-writer.h | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/source/core/slang-writer.cpp b/source/core/slang-writer.cpp index 3b1a5756a..849cb2da0 100644 --- a/source/core/slang-writer.cpp +++ b/source/core/slang-writer.cpp @@ -71,6 +71,7 @@ ISlangUnknown* BaseWriter::getInterface(const Guid& guid) SLANG_NO_THROW char* SLANG_MCALL AppendBufferWriter::beginAppendBuffer(size_t maxNumChars) { + mutex.lock(); m_appendBuffer.setCount(maxNumChars); return m_appendBuffer.getBuffer(); } @@ -82,6 +83,7 @@ SLANG_NO_THROW SlangResult SLANG_MCALL AppendBufferWriter::endAppendBuffer(char* SlangResult res = write(buffer, numChars); // Clear so that buffer can't be written from again without assert m_appendBuffer.clear(); + mutex.unlock(); return res; } diff --git a/source/core/slang-writer.h b/source/core/slang-writer.h index 7c768a22f..ccdcb3747 100644 --- a/source/core/slang-writer.h +++ b/source/core/slang-writer.h @@ -8,6 +8,8 @@ #include "slang-list.h" +#include <mutex> + namespace Slang { @@ -81,6 +83,7 @@ public: protected: List<char> m_appendBuffer; + std::mutex mutex; }; class CallbackWriter : public AppendBufferWriter |
