X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f2792e5909cc863fb914f60a25a0cfe007e213dd..ebec9c6104a6bbe60b7bf4586baeaf0b88f53505:/examples/sthread/pthread-mutex-simple.c diff --git a/examples/sthread/pthread-mutex-simple.c b/examples/sthread/pthread-mutex-simple.c index f39de639fd..a7dea6bd6b 100644 --- a/examples/sthread/pthread-mutex-simple.c +++ b/examples/sthread/pthread-mutex-simple.c @@ -1,3 +1,8 @@ +/* Copyright (c) 2002-2023. 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. */ + /* Simple test code with no bug */ #include @@ -5,34 +10,30 @@ pthread_mutex_t mutex; -static void* thread1_fun(void* ignore) -{ - pthread_mutex_lock(&mutex); - pthread_mutex_unlock(&mutex); - - return NULL; -} -static void* thread2_fun(void* ignore) +static void* thread_fun(void* val) { pthread_mutex_lock(&mutex); pthread_mutex_unlock(&mutex); + fprintf(stderr, "The thread %d is terminating.\n", *(int*)val); return NULL; } int main(int argc, char* argv[]) { - fprintf(stderr, "User main is starting\n"); - pthread_mutex_init(&mutex, NULL); - pthread_t thread1, thread2; - pthread_create(&thread1, NULL, thread1_fun, NULL); - fprintf(stderr, "here\n"); - pthread_create(&thread2, NULL, thread2_fun, NULL); - // pthread_join(thread1, NULL); - // pthread_join(thread2, NULL); + int id[2] = {0, 1}; + pthread_t thread1; + pthread_t thread2; + pthread_create(&thread1, NULL, thread_fun, &id[0]); + pthread_create(&thread2, NULL, thread_fun, &id[1]); + fprintf(stderr, "All threads are started.\n"); + pthread_join(thread1, NULL); + pthread_join(thread2, NULL); + + pthread_mutex_destroy(&mutex); - fprintf(stderr, "User main is done\n"); + fprintf(stderr, "User's main is terminating.\n"); return 0; }