[#BloombergLP-ball-Logger-obtainMessageBuffer-0c] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::xref:BloombergLP/ball/Logger.adoc[Logger]::obtainMessageBuffer :relfileprefix: ../../../ :mrdocs: Return exclusive access to this logger's message formatting buffer. == Synopsis Declared in `<ball_loggermanager.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char* obtainMessageBuffer( xref:BloombergLP/bslmt/Mutex.adoc[bslmt::Mutex]** mutex, int* bufferSize); ---- == Description Block until access to the buffer of this logger used for formatting messages is available. Return the address of the modifiable buffer to which this thread of execution has exclusive access, load the address of the mutex that protects the buffer into the specified `*mutex` address, and load the size (in bytes) of the buffer into the specified `bufferSize` address. The address remains valid, and the buffer remains locked by this thread of execution, until this thread calls `mutex‐>unlock()`. The behavior is undefined if this thread of execution currently holds a lock on the buffer. Note that the buffer is intended to be used _only_ for formatting log messages immediately before calling `logMessage`; other use may adversely affect performance for the entire program. == Return Value address of the modifiable buffer to which this thread has exclusive access == Parameters [cols="1,4"] |=== | Name| Description | *mutex* | address at which to store the buffer‐protecting mutex | *bufferSize* | address at which to store the buffer size in bytes |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#