about summary refs log tree commit diff
path: root/src/rt/rust_message.cpp
diff options
context:
space:
mode:
authorEric Holk <eholk@mozilla.com>2011-07-18 12:02:26 -0700
committerBrian Anderson <banderson@mozilla.com>2011-07-21 11:51:22 -0700
commit3ae4dcd41e72d197e3882835253745f79588b04a (patch)
tree38b0fa41afe156057c8913f779fda2e4ca0b08ac /src/rt/rust_message.cpp
parenta44fb04d57400f70ad58c1e35fc9dd9a7c43de07 (diff)
downloadrust-3ae4dcd41e72d197e3882835253745f79588b04a.tar.gz
rust-3ae4dcd41e72d197e3882835253745f79588b04a.zip
Lots of work on memory tracking and channels.
We're trying to get closer to doing correct move semantics for channel
operations. This involves a lot of cleanup (such as removing the
unused sched parameter from rust_vec constructor) and making
circular_buffer kernel_owned.

Added tagging for memory allocations. This means we give a string tag
to everything we allocate. If we leak something and TRACK_ALLOCATIONS
is enabled, then it's much easier now to tell exactly what is leaking.
Diffstat (limited to 'src/rt/rust_message.cpp')
-rw-r--r--src/rt/rust_message.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/rt/rust_message.cpp b/src/rt/rust_message.cpp
index 85b6ed6b089..59645d6d5bd 100644
--- a/src/rt/rust_message.cpp
+++ b/src/rt/rust_message.cpp
@@ -47,7 +47,8 @@ send(notification_type type, const char* label,
      rust_handle<rust_task> *source, rust_handle<rust_task> *target) {
     memory_region *region = &target->message_queue->region;
     notify_message *message =
-        new (region) notify_message(region, type, label, source, target);
+        new (region, "notify_message")
+        notify_message(region, type, label, source, target);
     target->message_queue->enqueue(message);
 }
 
@@ -91,8 +92,8 @@ send(uint8_t *buffer, size_t buffer_sz, const char* label,
 
     memory_region *region = &port->message_queue->region;
     data_message *message =
-        new (region) data_message(region, buffer, buffer_sz, label, source,
-                                  port);
+        new (region, "data_message")
+        data_message(region, buffer, buffer_sz, label, source, port);
     LOG(source->referent(), comm, "==> sending \"%s\"" PTR " in queue " PTR,
         label, message, &port->message_queue);
     port->message_queue->enqueue(message);