bool master_fiber::run_alone(const char* addrs, const char* path /* = NULL */, unsigned int) { // 每个进程只能有一个实例在运行 acl_assert(has_called == false); has_called = true; daemon_mode_ = false; acl_assert(addrs && *addrs); int argc = 0; const char *argv[9]; argv[argc++] = acl_process_path(); argv[argc++] = "-L"; argv[argc++] = addrs; if (path && *path) { argv[argc++] = "-f"; argv[argc++] = path; } fiber_server_main(argc, (char**) argv, service_main, NULL, ACL_MASTER_SERVER_PRE_INIT, service_pre_jail, ACL_MASTER_SERVER_PRE_INIT, service_pre_jail, ACL_MASTER_SERVER_POST_INIT, service_init, ACL_MASTER_SERVER_EXIT, service_exit, ACL_MASTER_SERVER_BOOL_TABLE, conf_.get_bool_cfg(), ACL_MASTER_SERVER_INT64_TABLE, conf_.get_int64_cfg(), ACL_MASTER_SERVER_INT_TABLE, conf_.get_int_cfg(), ACL_MASTER_SERVER_STR_TABLE, conf_.get_str_cfg(), ACL_MASTER_SERVER_END); return true; }
global::global() { const char* filepath = acl_process_path(); ACL_VSTRING* path = acl_vstring_alloc(256); acl_sane_dirname(path, filepath); path_ = acl_vstring_str(path); acl_vstring_free(path); }