//-----------------------------------------------------------------------------
// 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
Example #2
0
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, " ");
	}
}
Example #3
0
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;
}