//## method void Class.setJITCode(); static METHOD Class_setJITCode(Ctx *ctx, knh_sfp_t *sfp, long rix) { knh_Class_t *o = (knh_Class_t*) sfp[0].o; knh_Method_t *mtd = knh_lookupMethod(ctx, o->cid, FN_new); pjit_compile(ctx, mtd); RETURNvoid_(); }
// LogPool LogPool.loadFile(String key, String file); static KMETHOD LogPool_loadFile(KonohaContext *kctx, KonohaStack *sfp) { logpool_t *lp = (logpool_t *) ((kRawPtr *) sfp[0].asObject)->rawptr; kString *key = sfp[1].asString; kString *file = sfp[2].s; memcached_st *mc = memcached_create(NULL); memcached_server_list_st servers; memcached_return_t rc; servers = memcached_server_list_append(NULL, "127.0.0.1", 11211, &rc); if (rc != MEMCACHED_SUCCESS) { fprintf(stderr, "memcached_server_list_append failed\n"); RETURNvoid_(); } rc = memcached_server_push(mc, servers); memcached_server_list_free(servers); size_t len; char *script = loadFile(S_text(file), &len); memcached_set(mc, S_text(key), S_size(key), script, len, 0, 0); logpool_procedure(lp, (char*)S_text(key), S_size(key)); free(script); RETURNvoid_(); }
static void knh_Actor_addMemcached(CTX ctx, knh_Actor_t *a) { const char *actor_name = DP(a)->actor_name; knh_String_t *p = ctx->script->ns->path->urn; const char *path = p->str.text; memcached_st *memc = new_memcached("localhost"); int port = knh_Actor_getPortNum(memc); port++; char port_str[5] = {0}; snprintf(port_str, 5, "%d", port); memcached_setValue(memc, "port", port_str); char buf[MAX_BUF_SIZE] = {0}; if (sizeof(path) + 6 > MAX_BUF_SIZE) { fprintf(stderr, "ERROR: too long name\n"); } snprintf(buf, MAX_BUF_SIZE, "%s:%s", path, port_str); memcached_setValue(memc, actor_name, buf); DP(a)->port = port; DP(a)->path = path; RETURNvoid_(); }
//## method void Func.setJITCode(); static METHOD Func_setJITCode(Ctx *ctx, knh_sfp_t *sfp, long rix) { knh_Func_t *o = (knh_Func_t*) sfp[0].o; pjit_compile(ctx, o->mtd); RETURNvoid_(); }