Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of framagit.org:simgrid/simgrid
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 28 Jun 2022 20:13:36 +0000 (22:13 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 28 Jun 2022 20:13:49 +0000 (22:13 +0200)
1  2 
examples/sthread/pthread-mutex-simple.c
examples/sthread/pthread-mutex-simple.tesh
src/sthread/sthread_impl.cpp

@@@ -5,31 -5,26 +5,25 @@@
  
  pthread_mutex_t mutex;
  
- static void* thread1_fun(void* ignore)
 -static void* thread_fun(void* ignore)
++static void* thread_fun(void* val)
  {
    pthread_mutex_lock(&mutex);
    pthread_mutex_unlock(&mutex);
  
-   fprintf(stderr, "The first thread is terminating.\n");
-   return NULL;
- }
- static void* thread2_fun(void* ignore)
- {
-   pthread_mutex_lock(&mutex);
-   pthread_mutex_unlock(&mutex);
-   fprintf(stderr, "The second thread is terminating.\n");
++  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);
-   pthread_create(&thread2, NULL, thread2_fun, NULL);
++  int id[2] = {0, 1};
+   pthread_t thread1;
+   pthread_t thread2;
 -  pthread_create(&thread1, NULL, thread_fun, NULL);
 -  fprintf(stderr, "here\n");
 -  pthread_create(&thread2, NULL, thread_fun, NULL);
 -  fprintf(stderr, "there\n");
++  pthread_create(&thread1, NULL, thread_fun, (void*)&id[0]);
++  pthread_create(&thread2, NULL, thread_fun, (void*)&id[1]);
 +  fprintf(stderr, "All threads are started.\n");
    pthread_join(thread1, NULL);
    pthread_join(thread2, NULL);
  
index 00827cb,0000000..b3bba4d
mode 100644,000000..100644
--- /dev/null
@@@ -1,7 -1,0 +1,7 @@@
- > The first thread is terminating.
 +$ ./pthread-mutex-simple
 +> [0.000000] [sthread/INFO] Starting the simulation.
- > The second thread is terminating.
++> The thread 0 is terminating.
 +> All threads are started.
++> The thread 1 is terminating.
 +> User's main is terminating.
 +> [0.000000] [sthread/INFO] All threads exited. Terminating the simulation.
Simple merge