コード例 #1
0
ファイル: list.c プロジェクト: blue119/conman-debianize
void list_destroy(List l)
{
    ListIterator i, iTmp;
    ListNode p, pTmp;

    assert(l != NULL);
    list_mutex_lock(&l->mutex);
    assert(l->magic == LIST_MAGIC);
    i = l->iNext;
    while (i) {
        assert(i->magic == LIST_MAGIC);
        iTmp = i->iNext;
        assert(i->magic = 1);           /* clear magic via assert abuse */
        list_iterator_free(i);
        i = iTmp;
    }
    p = l->head;
    while (p) {
        pTmp = p->next;
        if (p->data && l->fDel)
            l->fDel(p->data);
        list_node_free(p);
        p = pTmp;
    }
    assert(l->magic = 1);               /* clear magic via assert abuse */
    list_mutex_unlock(&l->mutex);
    list_mutex_destroy(&l->mutex);
    list_free(l);
    return;
}
コード例 #2
0
void liberar_memoria_plataforma(){
	void (*destruir_pj_listo) = destruir_personaje_listo;
	void (*destruir_pj_finalizado) = destruir_personaje_finalizado;
	void (*destruir_planificador)= destruir_planificadores;

	log_debug(logger_orq, "Liberando lista personajes_bloqueados.");
	list_mutex_clean_and_destroy_elements(personajes_bloqueados, destruir_pj_listo);
	list_mutex_destroy(personajes_bloqueados);

	log_debug(logger_orq, "Liberando lista personajes_listos.");
	list_mutex_clean_and_destroy_elements(personajes_listos, destruir_pj_listo);
	list_mutex_destroy(personajes_listos);

	log_debug(logger_orq, "Liberando lista personajes_finalizados.");
	list_mutex_clean_and_destroy_elements(personajes_finalizados, destruir_pj_finalizado);
	list_mutex_destroy(personajes_finalizados);

	log_debug(logger_orq, "Eliminando lista planificadores.w");
	list_mutex_clean_and_destroy_elements(planificadores, destruir_planificador);
	list_mutex_destroy(planificadores);

}
コード例 #3
0
int main(void)
{
	int i;
	int quantum_reset;

	/* Creo la lista mutex */
	list_mutex = list_mutex_create();

	/* Creo la cola mutex */
	queue_mutex = queue_mutex_create();

	/* Creo la cola round robin */
	quantum_reset = 3;
	queue_rr = queue_rr_create(quantum_reset);

	/* Creo cola array round robin */
	for(i = 0 ; i<MAX_THREADS ; i++)
	{
		array_queue_rr[i] = queue_rr_create(quantum_reset);
	}

	/*
	prueba_lista_mutex();
	*/
	/*
	prueba_cola_mutex();
	*/
	/*
	prueba_cola_round_robin();
	*/

	prueba_array_cola_round_robin();


	/* libero memoria */
	list_mutex_destroy(list_mutex);
	queue_mutex_destroy(queue_mutex);
	queue_rr_destroy(queue_rr);
	for(i = 0 ; i<MAX_THREADS ; i++)
	{
		queue_rr_destroy(array_queue_rr[i]);
	}

	return(1);
}