aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorenricotenuti <tenutz_27@outlook.it>2024-09-28 15:33:06 +0200
committerenricotenuti <tenutz_27@outlook.it>2024-09-28 15:33:06 +0200
commit1e768138b80b7b94cef922f1fb9d5c4bfa796052 (patch)
tree9418d611673bfe7b8d3f60ae01a0f93288db54dc /src
parent47fe842ee3375ad63cc96550e345d18f3af0885b (diff)
downloadnissy-core-1e768138b80b7b94cef922f1fb9d5c4bfa796052.tar.gz
nissy-core-1e768138b80b7b94cef922f1fb9d5c4bfa796052.zip
go back to non atomic active
Diffstat (limited to 'src')
-rw-r--r--src/solvers/h48/thread.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/solvers/h48/thread.h b/src/solvers/h48/thread.h
index bea34d0..91e092f 100644
--- a/src/solvers/h48/thread.h
+++ b/src/solvers/h48/thread.h
@@ -7,7 +7,7 @@ typedef struct {
7 int front; 7 int front;
8 int rear; 8 int rear;
9 int tasks_count; 9 int tasks_count;
10 atomic_int active; 10 int active;
11 pthread_mutex_t mutex; 11 pthread_mutex_t mutex;
12 pthread_cond_t cond; 12 pthread_cond_t cond;
13 pthread_cond_t active_cond; 13 pthread_cond_t active_cond;
@@ -117,11 +117,13 @@ start_thread(void *arg)
117 117
118 solve_h48_single(task, queue); 118 solve_h48_single(task, queue);
119 119
120 atomic_fetch_sub(&queue->active, 1); 120 pthread_mutex_lock(&queue->mutex);
121 queue->active--;
121 122
122 if(queue->tasks_count == 0 && queue->active == 0) 123 if(queue->tasks_count == 0 && queue->active == 0)
123 pthread_cond_signal(&queue->active_cond); 124 pthread_cond_signal(&queue->active_cond);
124 } 125 }
126 pthread_mutex_unlock(&queue->mutex);
125 } 127 }
126 return NULL; 128 return NULL;
127} 129}

Generated with cgit - Back to sebastiano.tronto.net