X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/29a1d43bbc5cc9335fff14760d5d2b80dcd342ad..22be3d721223ad75f56c4471ef413c02174bb7b9:/examples/xbt/sem_basic.c diff --git a/examples/xbt/sem_basic.c b/examples/xbt/sem_basic.c deleted file mode 100644 index 532a9720a7..0000000000 --- a/examples/xbt/sem_basic.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2007, 2010-2015. The SimGrid Team. - * All rights reserved. */ - -/* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. */ - -#include -#include - - -#include "xbt/xbt_os_thread.h" -#include "xbt.h" -#include "xbt/log.h" -XBT_LOG_NEW_DEFAULT_CATEGORY(sem_basic, - "Messages specific for this sem example"); - - - -#define THREAD_THREADS_MAX ((unsigned int)10) - -/* - * the thread function. - */ -void *thread_routine(void *param); - -/* an entry of the table of threads */ -typedef struct s_thread_entry { - xbt_os_thread_t thread; - unsigned int thread_index; /* the index of the thread */ -} s_thread_entry_t, *thread_entry_t; - - -static xbt_os_sem_t sem = NULL; - -static -int value = 0; -int main(int argc, char *argv[]) -{ - s_thread_entry_t threads_table[THREAD_THREADS_MAX] = { 0 }; - unsigned int i, j; - int exit_code = 0; - - xbt_init(&argc, argv); - - sem = xbt_os_sem_init(1); - - i = 0; - - while (i < THREAD_THREADS_MAX) { - threads_table[i].thread_index = i; - - if (NULL == - (threads_table[i].thread = - xbt_os_thread_create("thread", thread_routine, - &(threads_table[i].thread_index)))) - break; - - i++; - } - - /* close the thread handles */ - for (j = 0; j < THREAD_THREADS_MAX; j++) - xbt_os_thread_join(threads_table[j].thread, NULL); - - xbt_os_sem_destroy(sem); - - XBT_INFO("sem_basic terminated with exit code %d (success)", EXIT_SUCCESS); - - return EXIT_SUCCESS; - -} - -void *thread_routine(void *param) -{ - int thread_index = *((int *) param); - int exit_code = 0; - - xbt_os_sem_acquire(sem); - XBT_INFO("Hello i'm the thread %d", thread_index); - value++; - XBT_INFO("The new value of the global variable is %d, bye", value); - xbt_os_sem_release(sem); - - xbt_os_thread_exit(&exit_code); - - return (void *) (NULL); -}