[PATCH] D20579: [esan] Add circular buffer data structure

Mike Aizatsky via llvm-commits llvm-commits at lists.llvm.org
Tue May 24 14:56:24 PDT 2016

aizatsky added inline comments.

Comment at: lib/esan/esan_circular_buffer.h:20
@@ +19,3 @@
+// A circular buffer for POD data whose memory is allocated using mmap.
+template<typename T>
+class CircularBuffer {
Document that you need to call "initialize/free" rather than rely on constructors/destructors.

Comment at: lib/esan/esan_circular_buffer.h:26
@@ +25,3 @@
+  explicit CircularBuffer() {}
+  void initialize(uptr BufferCapacity) {
+    Capacity = BufferCapacity;
If you plan to have local-instances of this class (which I assume you don't), then please follow the tsan pattern with in-place new and

static ALIGNED(16) char thread_registry_placeholder[sizeof(ThreadRegistry)];

This would result in much better reusable utility class.


More information about the llvm-commits mailing list