diff options
| author | Eric Holk <eholk@mozilla.com> | 2011-07-06 16:42:02 -0700 |
|---|---|---|
| committer | Eric Holk <eholk@mozilla.com> | 2011-07-07 18:22:27 -0700 |
| commit | dcd2563a3a7662d03ab33b67c92652e6e24c5af1 (patch) | |
| tree | 2aa007c80ad5a189a5cda31529edde2182fa5648 /src/rt/rust_task.cpp | |
| parent | a0f45f4456de5e9811d80b20df243d7078c45918 (diff) | |
| download | rust-dcd2563a3a7662d03ab33b67c92652e6e24c5af1.tar.gz rust-dcd2563a3a7662d03ab33b67c92652e6e24c5af1.zip | |
Removing the synchronized memory region from tasks.
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 58 |
1 files changed, 8 insertions, 50 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 0ca34e0985d..721f5b0ed20 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -73,7 +73,6 @@ rust_task::rust_task(rust_scheduler *sched, rust_task_list *state, running_on(-1), pinned_on(-1), local_region(&sched->srv->local_region), - synchronized_region(&sched->srv->synchronized_region), _on_wakeup(NULL) { LOGPTR(sched, "new task", (uintptr_t)this); @@ -326,7 +325,7 @@ rust_task::malloc(size_t sz, type_desc *td) if (td) { sz += sizeof(gc_alloc); } - void *mem = malloc(sz, memory_region::LOCAL); + void *mem = local_region.malloc(sz); if (!mem) return mem; if (td) { @@ -353,7 +352,7 @@ rust_task::realloc(void *data, size_t sz, bool is_gc) gc_alloc *gcm = (gc_alloc*)(((char *)data) - sizeof(gc_alloc)); unlink_gc(gcm); sz += sizeof(gc_alloc); - gcm = (gc_alloc*) realloc((void*)gcm, sz, memory_region::LOCAL); + gcm = (gc_alloc*) local_region.realloc((void*)gcm, sz); DLOG(sched, task, "task %s @0x%" PRIxPTR " reallocated %d GC bytes = 0x%" PRIxPTR, name, (uintptr_t)this, sz, gcm); @@ -362,7 +361,7 @@ rust_task::realloc(void *data, size_t sz, bool is_gc) link_gc(gcm); data = (void*) &(gcm->data); } else { - data = realloc(data, sz, memory_region::LOCAL); + data = local_region.realloc(data, sz); } return data; } @@ -379,9 +378,11 @@ rust_task::free(void *p, bool is_gc) DLOG(sched, mem, "task %s @0x%" PRIxPTR " freeing GC memory = 0x%" PRIxPTR, name, (uintptr_t)this, gcm); - free(gcm, memory_region::LOCAL); + DLOG(sched, mem, "rust_task::free(0x%" PRIxPTR ")", gcm); + local_region.free(gcm); } else { - free(p, memory_region::LOCAL); + DLOG(sched, mem, "rust_task::free(0x%" PRIxPTR ")", p); + local_region.free(p); } } @@ -474,51 +475,8 @@ bool rust_task::can_schedule(int id) } void * -rust_task::malloc(size_t size, memory_region::memory_region_type type) { - if (type == memory_region::LOCAL) { - return local_region.malloc(size); - } else if (type == memory_region::SYNCHRONIZED) { - return synchronized_region.malloc(size); - } - I(sched, false); - return NULL; -} - -void * rust_task::calloc(size_t size) { - return calloc(size, memory_region::LOCAL); -} - -void * -rust_task::calloc(size_t size, memory_region::memory_region_type type) { - if (type == memory_region::LOCAL) { - return local_region.calloc(size); - } else if (type == memory_region::SYNCHRONIZED) { - return synchronized_region.calloc(size); - } - return NULL; -} - -void * -rust_task::realloc(void *mem, size_t size, - memory_region::memory_region_type type) { - if (type == memory_region::LOCAL) { - return local_region.realloc(mem, size); - } else if (type == memory_region::SYNCHRONIZED) { - return synchronized_region.realloc(mem, size); - } - return NULL; -} - -void -rust_task::free(void *mem, memory_region::memory_region_type type) { - DLOG(sched, mem, "rust_task::free(0x%" PRIxPTR ")", mem); - if (type == memory_region::LOCAL) { - local_region.free(mem); - } else if (type == memory_region::SYNCHRONIZED) { - synchronized_region.free(mem); - } - return; + return local_region.calloc(size); } void rust_task::pin() { |
