Example #1
0
EagleInstance* EagleInstance_New(int totalWorkers)
{
    EagleInstance *instance = (EagleInstance*) EagleMemory_Allocate("EagleInstance_New.1", sizeof(EagleInstance));
    if(NULL == instance) {
        return NULL;
    }

    instance->workers = EagleWorkers_New(totalWorkers, instance);
    instance->nextJobLock = EagleSynchronizer_CreateLock();
    instance->plan = NULL;

    return instance;
}
Example #2
0
EagleLogger* EagleLogger_New(FILE *out)
{
    EagleLogger *logger = (EagleLogger*) EagleMemory_Allocate("EagleLogger_New.1", 1000);
    if (!logger) {
        return NULL;
    }

    logger->totalMessages = 0;
    logger->logLock = EagleSynchronizer_CreateLock();
    logger->out = out;
    logger->lastEvent = NULL;

    return logger;
}
Example #3
0
EagleLogger* EagleLogger_Get(void)
{
    static EagleLogger *EagleLogger_Logger = NULL;
    static EagleLock *lock = NULL;

    /* this function must be synchronized */
    if (!lock) {
        lock = EagleSynchronizer_CreateLock();
    }
    EagleSynchronizer_Lock(lock);

    /* initialise if its not started */
    if (!EagleLogger_Logger) {
        /* use the default log location */
        FILE *logFile = EagleLogger_GetLogFile(EagleLogger_DefaultLogLocation);

        EagleLogger_Logger = EagleLogger_New(logFile);
    }

    EagleSynchronizer_Unlock(lock);
    return EagleLogger_Logger;
}