moved the heapsize parameter from hcl_open() to hcl_ignite()
This commit is contained in:
parent
816b900231
commit
43322c6901
@ -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;
|
||||
|
4
lib/gc.c
4
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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
|
||||
|
14
lib/hcl.h
14
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
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user