From 43322c69011ac00df8190ace3d91eda2f9576f12 Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Tue, 9 Feb 2021 17:47:22 +0000 Subject: [PATCH] moved the heapsize parameter from hcl_open() to hcl_ignite() --- bin/main.c | 4 ++-- lib/gc.c | 4 ++-- lib/hcl-c.c | 2 +- lib/hcl-s.c | 6 +++--- lib/hcl.c | 9 +++------ lib/hcl.h | 14 +++++--------- lib/json.c | 2 +- lib/std.c | 8 ++++---- 8 files changed, 21 insertions(+), 28 deletions(-) diff --git a/bin/main.c b/bin/main.c index 8cb7429..956623d 100644 --- a/bin/main.c +++ b/bin/main.c @@ -735,7 +735,7 @@ int main (int argc, char* argv[]) if (opt.ind >= argc) goto print_usage; #endif - hcl = hcl_openstd(HCL_SIZEOF(xtn_t), heapsize, HCL_NULL); + hcl = hcl_openstd(HCL_SIZEOF(xtn_t), HCL_NULL); if (HCL_UNLIKELY(!hcl)) { printf ("ERROR: cannot open hcl\n"); @@ -786,7 +786,7 @@ int main (int argc, char* argv[]) } #endif - if (hcl_ignite(hcl) <= -1) + if (hcl_ignite(hcl, heapsize) <= -1) { hcl_logbfmt (hcl, HCL_LOG_STDERR, "cannot ignite hcl - [%d] %js\n", hcl_geterrnum(hcl), hcl_geterrmsg(hcl)); goto oops; diff --git a/lib/gc.c b/lib/gc.c index 6c49142..321b97d 100644 --- a/lib/gc.c +++ b/lib/gc.c @@ -736,13 +736,13 @@ hcl_oop_t hcl_shallowcopy (hcl_t* hcl, hcl_oop_t oop) /* ========================================================================= */ -int hcl_ignite (hcl_t* hcl) +int hcl_ignite (hcl_t* hcl, hcl_oow_t heapsize) { hcl_oow_t i; if (!hcl->heap) { - hcl->heap = hcl_makeheap(hcl, hcl->_reqheapsz); + hcl->heap = hcl_makeheap(hcl, heapsize); if (HCL_UNLIKELY(!hcl->heap)) return -1; } diff --git a/lib/hcl-c.c b/lib/hcl-c.c index 12ba9e5..e536fc9 100644 --- a/lib/hcl-c.c +++ b/lib/hcl-c.c @@ -809,7 +809,7 @@ hcl_client_t* hcl_client_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_client_p return HCL_NULL; } - hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), 2048, errnum); + hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), errnum); if (!hcl) { HCL_MMGR_FREE (mmgr, client); diff --git a/lib/hcl-s.c b/lib/hcl-s.c index a5161b2..75ade33 100644 --- a/lib/hcl-s.c +++ b/lib/hcl-s.c @@ -652,7 +652,7 @@ hcl_server_proto_t* hcl_server_proto_open (hcl_oow_t xtnsize, hcl_server_worker_ proto->worker = worker; proto->exec_runtime_event_index = HCL_TMR_INVALID_INDEX; - proto->hcl = hcl_openstdwithmmgr(hcl_server_getmmgr(proto->worker->server), HCL_SIZEOF(*xtn), worker->server->cfg.actor_heap_size, HCL_NULL); + proto->hcl = hcl_openstdwithmmgr(hcl_server_getmmgr(proto->worker->server), HCL_SIZEOF(*xtn), HCL_NULL); if (!proto->hcl) goto oops; /* replace the vmprim.log_write function */ @@ -680,7 +680,7 @@ hcl_server_proto_t* hcl_server_proto_open (hcl_oow_t xtnsize, hcl_server_worker_ hclcb.vm_checkbc = vm_checkbc; hcl_regcb (proto->hcl, &hclcb); - if (hcl_ignite(proto->hcl) <= -1) goto oops; + if (hcl_ignite(proto->hcl, worker->server->cfg.actor_heap_size) <= -1) goto oops; if (hcl_addbuiltinprims(proto->hcl) <= -1) goto oops; if (hcl_attachio(proto->hcl, read_handler, print_handler) <= -1) goto oops; @@ -1508,7 +1508,7 @@ hcl_server_t* hcl_server_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_server_p return HCL_NULL; } - hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), 2048, errnum); + hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), errnum); if (!hcl) goto oops; /* replace the vmprim.log_write function */ diff --git a/lib/hcl.c b/lib/hcl.c index 779e1bb..9d5c795 100644 --- a/lib/hcl.c +++ b/lib/hcl.c @@ -27,7 +27,7 @@ #include "hcl-prv.h" -hcl_t* hcl_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_oow_t heapsize, const hcl_vmprim_t* vmprim, hcl_errnum_t* errnum) +hcl_t* hcl_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, const hcl_vmprim_t* vmprim, hcl_errnum_t* errnum) { hcl_t* hcl; @@ -37,7 +37,7 @@ hcl_t* hcl_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_oow_t heapsize, const hcl = (hcl_t*)HCL_MMGR_ALLOC(mmgr, HCL_SIZEOF(*hcl) + xtnsize); if (hcl) { - if (hcl_init(hcl, mmgr, heapsize, vmprim) <= -1) + if (hcl_init(hcl, mmgr, vmprim) <= -1) { if (errnum) *errnum = hcl->errnum; HCL_MMGR_FREE (mmgr, hcl); @@ -93,7 +93,7 @@ static void free_heap (hcl_t* hcl, void* ptr) hcl_freemem (hcl, ptr); } -int hcl_init (hcl_t* hcl, hcl_mmgr_t* mmgr, hcl_oow_t heapsz, const hcl_vmprim_t* vmprim) +int hcl_init (hcl_t* hcl, hcl_mmgr_t* mmgr, const hcl_vmprim_t* vmprim) { int modtab_inited = 0; int n; @@ -157,9 +157,6 @@ int hcl_init (hcl_t* hcl, hcl_mmgr_t* mmgr, hcl_oow_t heapsz, const hcl_vmprim_t hcl->proc_map_free_first = -1; hcl->proc_map_free_last = -1; - /* remember the requested heap size. but push back the actuall heap creation to hcl_ignite() */ - hcl->_reqheapsz = heapsz; - if (hcl->vmprim.dl_startup) hcl->vmprim.dl_startup (hcl); return 0; diff --git a/lib/hcl.h b/lib/hcl.h index 497928d..2441f0e 100644 --- a/lib/hcl.h +++ b/lib/hcl.h @@ -1392,7 +1392,6 @@ struct hcl_t } log; /* ========================= */ - hcl_oow_t _reqheapsz; hcl_heap_t* heap; /* ========================= */ @@ -1742,7 +1741,6 @@ extern "C" { HCL_EXPORT hcl_t* hcl_open ( hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, - hcl_oow_t heapsize, const hcl_vmprim_t* vmprim, hcl_errnum_t* errnum ); @@ -1750,13 +1748,11 @@ HCL_EXPORT hcl_t* hcl_open ( HCL_EXPORT hcl_t* hcl_openstdwithmmgr ( hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, - hcl_oow_t heapsize, hcl_errnum_t* errnum ); HCL_EXPORT hcl_t* hcl_openstd ( hcl_oow_t xtnsize, - hcl_oow_t heapsize, hcl_errnum_t* errnum ); @@ -1767,7 +1763,6 @@ HCL_EXPORT void hcl_close ( HCL_EXPORT int hcl_init ( hcl_t* hcl, hcl_mmgr_t* mmgr, - hcl_oow_t heapsize, const hcl_vmprim_t* vmprim ); @@ -1935,19 +1930,20 @@ hcl_oop_t hcl_moveoop ( ); HCL_EXPORT hcl_oop_t hcl_shallowcopy ( - hcl_t* hcl, - hcl_oop_t oop + hcl_t* hcl, + hcl_oop_t oop ); /** * The hcl_ignite() function creates key initial objects. */ HCL_EXPORT int hcl_ignite ( - hcl_t* hcl + hcl_t* hcl, + hcl_oow_t heapsize ); HCL_EXPORT int hcl_addbuiltinprims ( - hcl_t* hcl + hcl_t* hcl ); /** diff --git a/lib/json.c b/lib/json.c index cd09265..15ad684 100644 --- a/lib/json.c +++ b/lib/json.c @@ -885,7 +885,7 @@ hcl_json_t* hcl_json_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_json_prim_t* return HCL_NULL; } - hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), 2048, errnum); + hcl = hcl_openstdwithmmgr(mmgr, HCL_SIZEOF(*xtn), errnum); if (!hcl) { HCL_MMGR_FREE (mmgr, json); diff --git a/lib/std.c b/lib/std.c index 334c110..b8b0849 100644 --- a/lib/std.c +++ b/lib/std.c @@ -2922,7 +2922,7 @@ static void cb_vm_cleanup (hcl_t* hcl) * STANDARD HCL * ----------------------------------------------------------------- */ -hcl_t* hcl_openstdwithmmgr (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_oow_t heapsize, hcl_errnum_t* errnum) +hcl_t* hcl_openstdwithmmgr (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_errnum_t* errnum) { hcl_t* hcl; hcl_vmprim_t vmprim; @@ -2946,7 +2946,7 @@ hcl_t* hcl_openstdwithmmgr (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_oow_t heaps vmprim.vm_muxwait = vm_muxwait; vmprim.vm_sleep = vm_sleep; - hcl = hcl_open(mmgr, HCL_SIZEOF(xtn_t) + xtnsize, heapsize, &vmprim, errnum); + hcl = hcl_open(mmgr, HCL_SIZEOF(xtn_t) + xtnsize, &vmprim, errnum); if (HCL_UNLIKELY(!hcl)) return HCL_NULL; /* adjust the object size by the sizeof xtn_t so that moo_getxtn() returns the right pointer. */ @@ -2969,7 +2969,7 @@ hcl_t* hcl_openstdwithmmgr (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_oow_t heaps return hcl; } -hcl_t* hcl_openstd (hcl_oow_t xtnsize, hcl_oow_t heapsize, hcl_errnum_t* errnum) +hcl_t* hcl_openstd (hcl_oow_t xtnsize, hcl_errnum_t* errnum) { - return hcl_openstdwithmmgr(&sys_mmgr, xtnsize, heapsize, errnum); + return hcl_openstdwithmmgr(&sys_mmgr, xtnsize, errnum); }