From 7019f7b45f28dca27e04c5ef222a4b6804eddf83 Mon Sep 17 00:00:00 2001
From: Pedro Gonnet <pedro.gonnet@durham.ac.uk>
Date: Wed, 12 Dec 2012 23:56:06 +0000
Subject: [PATCH] parallelize particle and task init.

Former-commit-id: 34fff717ccaff6ee8c5e9448cbd855857b5aec57
---
 src/engine.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/engine.c b/src/engine.c
index 8343cda8f9..2fa1319164 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -197,6 +197,7 @@ void engine_run ( struct engine *e , int sort_queues ) {
     struct space *s = e->s;
     
     /* Re-set the particle data. */
+    #pragma omp parallel for
     for ( k = 0 ; k < s->nr_parts ; k++ ) {
         s->parts[k].wcount = 0.0f;
         s->parts[k].wcount_dh = 0.0f;
@@ -205,11 +206,12 @@ void engine_run ( struct engine *e , int sort_queues ) {
         }
     
     /* Run throught the tasks and get all the waits right. */
+    #pragma omp parallel for private(j)
     for ( k = 0 ; k < s->nr_tasks ; k++ ) {
         for ( j = 0 ; j < s->tasks[k].nr_unlock_tasks ; j++ )
-            s->tasks[k].unlock_tasks[j]->wait += 1;
+            __sync_add_and_fetch( &s->tasks[k].unlock_tasks[j]->wait , 1 );
         for ( j = 0 ; j < s->tasks[k].nr_unlock_cells ; j++ )
-            s->tasks[k].unlock_cells[j]->wait += 1;
+            __sync_add_and_fetch( &s->tasks[k].unlock_cells[j]->wait , 1 );
         }
     
     /* Re-set the queues.*/
-- 
GitLab