//----------------------------------------------------------------------------- // release // // - decrement reference counter // - free object if no reference left and terminate lock not set // LONG OPCEngine::release(void) { BOOL terminate = m_terminateLock; LONG refCount = InterlockedDecrement(&m_refCount); _TRACE(TL_DEB, TG_GEN, (_T("release %li locked:%s"), refCount, BOOL2STR(terminate))) if ((refCount <= 0) && (!terminate)) { stop(); delete this; // last reference and terminate flag set -> free object return 0; } return refCount; } // release
static void fpm_conf_dump() /* {{{ */ { struct fpm_worker_pool_s *wp; /* * Please keep the same order as in fpm_conf.h and in php-fpm.conf.in */ zlog(ZLOG_NOTICE, "[global]"); zlog(ZLOG_NOTICE, "\tpid = %s", STR2STR(fpm_global_config.pid_file)); zlog(ZLOG_NOTICE, "\terror_log = %s", STR2STR(fpm_global_config.error_log)); #ifdef HAVE_SYSLOG_H zlog(ZLOG_NOTICE, "\tsyslog.ident = %s", STR2STR(fpm_global_config.syslog_ident)); zlog(ZLOG_NOTICE, "\tsyslog.facility = %d", fpm_global_config.syslog_facility); /* FIXME: convert to string */ #endif zlog(ZLOG_NOTICE, "\tlog_level = %s", zlog_get_level_name(fpm_globals.log_level)); zlog(ZLOG_NOTICE, "\temergency_restart_interval = %ds", fpm_global_config.emergency_restart_interval); zlog(ZLOG_NOTICE, "\temergency_restart_threshold = %d", fpm_global_config.emergency_restart_threshold); zlog(ZLOG_NOTICE, "\tprocess_control_timeout = %ds", fpm_global_config.process_control_timeout); zlog(ZLOG_NOTICE, "\tprocess.max = %d", fpm_global_config.process_max); if (fpm_global_config.process_priority == 64) { zlog(ZLOG_NOTICE, "\tprocess.priority = undefined"); } else { zlog(ZLOG_NOTICE, "\tprocess.priority = %d", fpm_global_config.process_priority); } zlog(ZLOG_NOTICE, "\tdaemonize = %s", BOOL2STR(fpm_global_config.daemonize)); zlog(ZLOG_NOTICE, "\trlimit_files = %d", fpm_global_config.rlimit_files); zlog(ZLOG_NOTICE, "\trlimit_core = %d", fpm_global_config.rlimit_core); zlog(ZLOG_NOTICE, "\tevents.mechanism = %s", fpm_event_machanism_name()); #ifdef HAVE_SYSTEMD zlog(ZLOG_NOTICE, "\tsystemd_interval = %ds", fpm_global_config.systemd_interval/1000); #endif zlog(ZLOG_NOTICE, " "); for (wp = fpm_worker_all_pools; wp; wp = wp->next) { struct key_value_s *kv; if (!wp->config) continue; zlog(ZLOG_NOTICE, "[%s]", STR2STR(wp->config->name)); zlog(ZLOG_NOTICE, "\tprefix = %s", STR2STR(wp->config->prefix)); zlog(ZLOG_NOTICE, "\tuser = %s", STR2STR(wp->config->user)); zlog(ZLOG_NOTICE, "\tgroup = %s", STR2STR(wp->config->group)); zlog(ZLOG_NOTICE, "\tlisten = %s", STR2STR(wp->config->listen_address)); zlog(ZLOG_NOTICE, "\tlisten.backlog = %d", wp->config->listen_backlog); #ifdef HAVE_FPM_ACL zlog(ZLOG_NOTICE, "\tlisten.acl_users = %s", STR2STR(wp->config->listen_acl_users)); zlog(ZLOG_NOTICE, "\tlisten.acl_groups = %s", STR2STR(wp->config->listen_acl_groups)); #endif zlog(ZLOG_NOTICE, "\tlisten.owner = %s", STR2STR(wp->config->listen_owner)); zlog(ZLOG_NOTICE, "\tlisten.group = %s", STR2STR(wp->config->listen_group)); zlog(ZLOG_NOTICE, "\tlisten.mode = %s", STR2STR(wp->config->listen_mode)); zlog(ZLOG_NOTICE, "\tlisten.allowed_clients = %s", STR2STR(wp->config->listen_allowed_clients)); if (wp->config->process_priority == 64) { zlog(ZLOG_NOTICE, "\tprocess.priority = undefined"); } else { zlog(ZLOG_NOTICE, "\tprocess.priority = %d", wp->config->process_priority); } zlog(ZLOG_NOTICE, "\tpm = %s", PM2STR(wp->config->pm)); zlog(ZLOG_NOTICE, "\tpm.max_children = %d", wp->config->pm_max_children); zlog(ZLOG_NOTICE, "\tpm.start_servers = %d", wp->config->pm_start_servers); zlog(ZLOG_NOTICE, "\tpm.min_spare_servers = %d", wp->config->pm_min_spare_servers); zlog(ZLOG_NOTICE, "\tpm.max_spare_servers = %d", wp->config->pm_max_spare_servers); zlog(ZLOG_NOTICE, "\tpm.process_idle_timeout = %d", wp->config->pm_process_idle_timeout); zlog(ZLOG_NOTICE, "\tpm.max_requests = %d", wp->config->pm_max_requests); zlog(ZLOG_NOTICE, "\tpm.status_path = %s", STR2STR(wp->config->pm_status_path)); zlog(ZLOG_NOTICE, "\tping.path = %s", STR2STR(wp->config->ping_path)); zlog(ZLOG_NOTICE, "\tping.response = %s", STR2STR(wp->config->ping_response)); zlog(ZLOG_NOTICE, "\taccess.log = %s", STR2STR(wp->config->access_log)); zlog(ZLOG_NOTICE, "\taccess.format = %s", STR2STR(wp->config->access_format)); zlog(ZLOG_NOTICE, "\tslowlog = %s", STR2STR(wp->config->slowlog)); zlog(ZLOG_NOTICE, "\trequest_slowlog_timeout = %ds", wp->config->request_slowlog_timeout); zlog(ZLOG_NOTICE, "\trequest_terminate_timeout = %ds", wp->config->request_terminate_timeout); zlog(ZLOG_NOTICE, "\trlimit_files = %d", wp->config->rlimit_files); zlog(ZLOG_NOTICE, "\trlimit_core = %d", wp->config->rlimit_core); zlog(ZLOG_NOTICE, "\tchroot = %s", STR2STR(wp->config->chroot)); zlog(ZLOG_NOTICE, "\tchdir = %s", STR2STR(wp->config->chdir)); zlog(ZLOG_NOTICE, "\tcatch_workers_output = %s", BOOL2STR(wp->config->catch_workers_output)); zlog(ZLOG_NOTICE, "\tclear_env = %s", BOOL2STR(wp->config->clear_env)); zlog(ZLOG_NOTICE, "\tsecurity.limit_extensions = %s", wp->config->security_limit_extensions); for (kv = wp->config->env; kv; kv = kv->next) { zlog(ZLOG_NOTICE, "\tenv[%s] = %s", kv->key, kv->value); } for (kv = wp->config->php_values; kv; kv = kv->next) { zlog(ZLOG_NOTICE, "\tphp_value[%s] = %s", kv->key, kv->value); } for (kv = wp->config->php_admin_values; kv; kv = kv->next) { zlog(ZLOG_NOTICE, "\tphp_admin_value[%s] = %s", kv->key, kv->value); } zlog(ZLOG_NOTICE, " "); } }
bool KeGetCpuCapabilities() { std::stringstream sstr; sstr << KeGetCpuCount(); sstr << "\n\tVendor: " << InstructionSet::Vendor() << "\n\tBrand: " << InstructionSet::Brand() << "\n\tProcessors: " << KeGetCpuCount() << "\n\t\t3DNOW " << BOOL2STR(InstructionSet::_3DNOW()) << "\n\t\t3DNOWEXT " << BOOL2STR(InstructionSet::_3DNOWEXT()) << "\n\t\tABM " << BOOL2STR(InstructionSet::ABM()) << "\n\t\tADX " << BOOL2STR(InstructionSet::ADX()) << "\n\t\tAES " << BOOL2STR(InstructionSet::AES()) << "\n\t\tAVX " << BOOL2STR(InstructionSet::AVX()) << "\n\t\tAVX2 " << BOOL2STR(InstructionSet::AVX2()) << "\n\t\tAVX512CD " << BOOL2STR(InstructionSet::AVX512CD()) << "\n\t\tAVX512ER " << BOOL2STR(InstructionSet::AVX512ER()) << "\n\t\tAVX512F " << BOOL2STR(InstructionSet::AVX512F()) << "\n\t\tAVX512PF " << BOOL2STR(InstructionSet::AVX512PF()) << "\n\t\tBMI1 " << BOOL2STR(InstructionSet::BMI1()) << "\n\t\tBMI2 " << BOOL2STR(InstructionSet::BMI2()) << "\n\t\tCLFSH " << BOOL2STR(InstructionSet::CLFSH()) << "\n\t\tCMPXCHG16B " << BOOL2STR(InstructionSet::CMPXCHG16B()) << "\n\t\tCX8 " << BOOL2STR(InstructionSet::CX8()) << "\n\t\tERMS " << BOOL2STR(InstructionSet::ERMS()) << "\n\t\tF16C " << BOOL2STR(InstructionSet::F16C()) << "\n\t\tFMA " << BOOL2STR(InstructionSet::FMA()) << "\n\t\tFSGSBASE " << BOOL2STR(InstructionSet::FSGSBASE()) << "\n\t\tFXSR " << BOOL2STR(InstructionSet::FXSR()) << "\n\t\tHLE " << BOOL2STR(InstructionSet::HLE()) << "\n\t\tINVPCID " << BOOL2STR(InstructionSet::INVPCID()) << "\n\t\tLAHF " << BOOL2STR(InstructionSet::LAHF()) << "\n\t\tLZCNT " << BOOL2STR(InstructionSet::LZCNT()) << "\n\t\tMMX " << BOOL2STR(InstructionSet::MMX()) << "\n\t\tMMXEXT " << BOOL2STR(InstructionSet::MMXEXT()) << "\n\t\tMONITOR " << BOOL2STR(InstructionSet::MONITOR()) << "\n\t\tMOVBE " << BOOL2STR(InstructionSet::MOVBE()) << "\n\t\tMSR " << BOOL2STR(InstructionSet::MSR()) << "\n\t\tOSXSAVE " << BOOL2STR(InstructionSet::OSXSAVE()) << "\n\t\tPCLMULQDQ " << BOOL2STR(InstructionSet::PCLMULQDQ()) << "\n\t\tPOPCNT " << BOOL2STR(InstructionSet::POPCNT()) << "\n\t\tPREFETCHWT1" << BOOL2STR(InstructionSet::PREFETCHWT1()) << "\n\t\tRDRAND " << BOOL2STR(InstructionSet::RDRAND()) << "\n\t\tRDSEED " << BOOL2STR(InstructionSet::RDSEED()) << "\n\t\tRDTSCP " << BOOL2STR(InstructionSet::RDTSCP()) << "\n\t\tRTM " << BOOL2STR(InstructionSet::RTM()) << "\n\t\tSEP " << BOOL2STR(InstructionSet::SEP()) << "\n\t\tSHA " << BOOL2STR(InstructionSet::SHA()) << "\n\t\tSSE " << BOOL2STR(InstructionSet::SSE()) << "\n\t\tSSE2 " << BOOL2STR(InstructionSet::SSE2()) << "\n\t\tSSE3 " << BOOL2STR(InstructionSet::SSE3()) << "\n\t\tSSE4.1 " << BOOL2STR(InstructionSet::SSE41()) << "\n\t\tSSE4.2 " << BOOL2STR(InstructionSet::SSE42()) << "\n\t\tSSE4a " << BOOL2STR(InstructionSet::SSE4a()) << "\n\t\tSSSE3 " << BOOL2STR(InstructionSet::SSSE3()) << "\n\t\tSYSCALL " << BOOL2STR(InstructionSet::SYSCALL()) << "\n\t\tTBM " << BOOL2STR(InstructionSet::TBM()) << "\n\t\tXOP " << BOOL2STR(InstructionSet::XOP()) << "\n\t\tXSAVE " << BOOL2STR(InstructionSet::XSAVE()) << "\n"; /*while( i < extension_count ) { ext_str += "\t\t"; ext_str += (const char*) glGetStringi( GL_EXTENSIONS, i ); ext_str += "\n"; i++; }*/ DISPDBG( KE_DBGLVL(0), sstr.str() ); return true; }