git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9362
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
/* Initialize the thread pool data structure */
xbt_parmap_t parmap = xbt_new0(s_xbt_parmap_t, 1);
/* Initialize the thread pool data structure */
xbt_parmap_t parmap = xbt_new0(s_xbt_parmap_t, 1);
- #ifndef HAVE_FUTEX_H
- parmap->workers_ready->mutex = xbt_os_mutex_init();
- parmap->workers_ready->cond = xbt_os_cond_init();
- #endif
parmap->num_workers = num_workers;
parmap->status = PARMAP_WORK;
parmap->num_workers = num_workers;
parmap->status = PARMAP_WORK;
xbt_barrier_init(parmap->workers_ready, num_workers + 1);
parmap->workers_done = xbt_new0(s_xbt_barrier_t, 1);
xbt_barrier_init(parmap->workers_done, num_workers + 1);
xbt_barrier_init(parmap->workers_ready, num_workers + 1);
parmap->workers_done = xbt_new0(s_xbt_barrier_t, 1);
xbt_barrier_init(parmap->workers_done, num_workers + 1);
+#ifndef HAVE_FUTEX_H
+ parmap->workers_ready->mutex = xbt_os_mutex_init();
+ parmap->workers_ready->cond = xbt_os_cond_init();
+#endif
/* Create the pool of worker threads */
for(i=0; i < num_workers; i++){
worker = xbt_os_thread_create(NULL, _xbt_parmap_worker_main, parmap, NULL);
/* Create the pool of worker threads */
for(i=0; i < num_workers; i++){
worker = xbt_os_thread_create(NULL, _xbt_parmap_worker_main, parmap, NULL);
xbt_barrier_wait(parmap->workers_ready);
DEBUG0("Kill job sent");
xbt_barrier_wait(parmap->workers_done);
xbt_barrier_wait(parmap->workers_ready);
DEBUG0("Kill job sent");
xbt_barrier_wait(parmap->workers_done);
+#ifndef HAVE_FUTEX_H
+ xbt_os_mutex_destroy(parmap->workers_ready->mutex);
+ xbt_os_cond_destroy(parmap->workers_ready->cond);
+#endif
xbt_free(parmap->workers_ready);
xbt_free(parmap->workers_done);
xbt_free(parmap);
xbt_free(parmap->workers_ready);
xbt_free(parmap->workers_done);
xbt_free(parmap);