Changeset: cf9ddb0b0980 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cf9ddb0b0980
Modified Files:
gdk/gdk_utils.c
monetdb5/mal/mal_dataflow.c
monetdb5/optimizer/opt_emptybind.c
Branch: resource_management
Log Message:
reuse ta in dataflow workers
diffs (72 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -2279,7 +2279,7 @@ sa_use_freed(allocator *sa, size_t sz)
/*
- * Reset child allocator to initial state
+ * Reset allocator to initial state
*/
allocator *sa_reset(allocator *sa)
{
@@ -2288,7 +2288,7 @@ allocator *sa_reset(allocator *sa)
char **blks = sa->blks;
// only child allocators
- assert(sa->pa);
+ //assert(sa->pa);
// free all but 1st
for (i = 1; i < n_blks; i++) {
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c
--- a/monetdb5/mal/mal_dataflow.c
+++ b/monetdb5/mal/mal_dataflow.c
@@ -253,6 +253,7 @@ DFLOWworker(void *T)
#endif
GDKsetbuf(t->errbuf); /* where to leave errors */
snprintf(t->s.name, sizeof(t->s.name), "DFLOWsema%04zu", MT_getpid());
+ allocator *ta = ma_create(NULL);
for (;;) {
DataFlow flow;
@@ -336,13 +337,12 @@ DFLOWworker(void *T)
break;
}
- allocator *pa = flow->mb->ma;
- allocator *ta = ma_create(pa);
- MT_thread_setallocator(pa);
+ allocator *ma = flow->mb->ma;
+ MT_thread_setallocator(ma);
error = runMALsequence(ta, flow->cntxt, flow->mb,
fe->pc, fe->pc + 1,
flow->stk,
0, 0);
MT_thread_setallocator(NULL);
- ma_destroy(ta);
+ sa_reset(ta);
ATOMIC_DEC(&flow->cntxt->workers);
/* release the memory claim */
@@ -455,6 +455,7 @@ DFLOWworker(void *T)
}
MT_lock_unset(&dataflowLock);
GDKsetbuf(NULL);
+ ma_destroy(ta);
}
/*
diff --git a/monetdb5/optimizer/opt_emptybind.c
b/monetdb5/optimizer/opt_emptybind.c
--- a/monetdb5/optimizer/opt_emptybind.c
+++ b/monetdb5/optimizer/opt_emptybind.c
@@ -120,8 +120,10 @@ OPTemptybindImplementation(Client cntxt,
InstrPtr *tmp = updated;
//updated = GDKrealloc(updated,
// (esize
+= 256) * sizeof(InstrPtr));
+ size_t osz = esize;
+ esize += 256;
updated = MA_RENEW_ARRAY(cntxt->ta, InstrPtr,
updated,
- (esize
+= 256), esize);
+ esize,
osz);
if (updated == NULL) {
// GDKfree(tmp);
updated = tmp;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]