Пример #1
0
void init_jobs(void)
{
jobs_free=0;
jobs_size=100;
job=do_alloc(jobs_size, sizeof(JOB));
jobs_submitted=0;
jobs_done=0;
next_job_to_do=0;
thread_mutex_init(&jobs_mutex);
thread_cond_init(&wait_for_more_jobs_condition);
thread_cond_init(&all_done_condition);
}
Пример #2
0
void connection_initialize(void)
{
    if (_initialized) return;

    thread_spin_create (&_connection_lock);
    thread_mutex_create(&move_clients_mutex);
    thread_rwlock_create(&_source_shutdown_rwlock);
    thread_cond_init(&global.shutdown_cond);
    _con_queue = NULL;
    _con_queue_tail = &_con_queue;

    banned_ip.contents = NULL;
    banned_ip.file_mtime = 0;

    allowed_ip.contents = NULL;
    allowed_ip.file_mtime = 0;

    _connection_running = 1;
    /* (XXX)xaiki: need a way to make it go away on shutdown, ok for now */
    _connection_thread_id = thread_create ("Connection Thread", _connection_thread,
					   NULL, THREAD_DETACHED);
    _connection_cond = thread_cond_create ();

    _initialized = 1;
}
Пример #3
0
cond_t *thread_cond_create(void)
{
    cond_t *cond = acalloc (1, sizeof(cond_t));

    thread_cond_init(cond);

    return cond;
}
Пример #4
0
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
{
    cond_t *cn;
    (void) attr;

    pthread_initialize();
    if (cond == NULL)
        return_errno(EINVAL, EINVAL);
    if ((cn = (cond_t *)malloc(sizeof(cond_t))) == NULL)
        return errno;
    if (!thread_cond_init(cn))
        return errno;
    (*cond) = (pthread_cond_t)cn;
    return OK;
}
Пример #5
0
void init_threads(int mt)
{
max_threads=mt-1;
if(max_threads<0) {
	max_threads=cpu_count()-1;
	}
if(max_threads<0) max_threads=0;

thread_id=do_alloc(max_threads, sizeof(*thread_id));
num_threads=0;
threads_started=0;
thread_cond_init(&thread_not_needed);
thread_mutex_init(&thread_num_mutex);
set_concurrency(1);
fprintf(stderr, "maximum threads: %d\n", max_threads+1);
fprintf(LOG, "maximum threads: %d\n", max_threads+1);
}