about summary refs log tree commit diff
path: root/src/rt/circular_buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/circular_buffer.cpp')
-rw-r--r--src/rt/circular_buffer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/rt/circular_buffer.cpp b/src/rt/circular_buffer.cpp
index 191ec7c5756..98746d62f15 100644
--- a/src/rt/circular_buffer.cpp
+++ b/src/rt/circular_buffer.cpp
@@ -20,6 +20,7 @@ circular_buffer::circular_buffer(rust_task *task, size_t unit_sz) :
          _buffer_sz, _unread, this);
 
     A(sched, _buffer, "Failed to allocate buffer.");
+    task->ref();
 }
 
 circular_buffer::~circular_buffer() {
@@ -28,6 +29,7 @@ circular_buffer::~circular_buffer() {
     W(sched, _unread == 0,
       "freeing circular_buffer with %d unread bytes", _unread);
     task->free(_buffer);
+    --task->ref_count;
 }
 
 size_t