コード例 #1
0
static thread_ret_type thread_func_call __log_service_start_routine(void *arg)
{
    thread_ret_type r = (thread_ret_type)0;
    iop_log_service_t *log = (iop_log_service_t *)arg;
    int nloop = 0;
    while(!(log->stop_flag))
    {
        ++nloop;
        iop_msleep(100);

        iop_lock(&(log->lock));
        __log_service_flush(log);

        if(nloop > 60)
        {
            __iop_log_reopen(log);
            nloop = 0;
        }
        iop_unlock(&(log->lock));

    }
    if(log->fp)
    {
        fclose(log->fp);
        log->fp = (FILE *)0;
    }
    iop_lock_destroy(&(log->lock));
    if(log == g_iop_log_service)
    {
        g_iop_log_service = (iop_log_service_t *)0;
    }
    free(log);
    return r;
}
コード例 #2
0
int iop_log_service_stop()
{
    if(!g_iop_log_service){return 0;}
    iop_log_flush(g_iop_log_service);
    iop_lock(&(g_iop_log_service->lock));
    if((g_iop_log_service->fp))
    {
        fclose(g_iop_log_service->fp);
        g_iop_log_service->fp
= 0;
    }
    iop_thread_cancel((g_iop_log_service->tid));
    iop_unlock(&(g_iop_log_service->lock));
    iop_lock_destroy(&(g_iop_log_service->lock));
    free(g_iop_log_service);
    g_iop_log_service = 0;
    return 0;
}
コード例 #3
0
ファイル: CBlock.cpp プロジェクト: ideallx/serveree
CBlock::~CBlock() {
	clear();
	iop_lock_destroy(&mapLock);
}