diff options
| author | enricotenuti <tenutz_27@outlook.it> | 2024-09-28 15:33:06 +0200 |
|---|---|---|
| committer | enricotenuti <tenutz_27@outlook.it> | 2024-09-28 15:33:06 +0200 |
| commit | 1e768138b80b7b94cef922f1fb9d5c4bfa796052 (patch) | |
| tree | 9418d611673bfe7b8d3f60ae01a0f93288db54dc | |
| parent | 47fe842ee3375ad63cc96550e345d18f3af0885b (diff) | |
| download | nissy-core-1e768138b80b7b94cef922f1fb9d5c4bfa796052.tar.gz nissy-core-1e768138b80b7b94cef922f1fb9d5c4bfa796052.zip | |
go back to non atomic active
| -rw-r--r-- | src/solvers/h48/thread.h | 6 |
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 | } |
