summaryrefslogtreecommitdiff
path: root/dev-libs/concurrencykit/files/concurrencykit-0.7.0-tests.patch
blob: 4d29c6bcf7eb8a79360e34841b4985515db64839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From 07835a3d08d96db30393c235f95649e792883d50 Mon Sep 17 00:00:00 2001
From: Samy Al Bahra <sbahra@backtrace.io>
Date: Mon, 30 Nov 2020 18:33:51 -0500
Subject: [PATCH] regressions/ck_hp_fifo: fixes false-positive from #165.

Add busy-wait barrier before next stage of test. Otherwise,
some threads may enter it and a non-empty queue state is observed.
---
 regressions/ck_hp/validate/ck_hp_fifo.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/regressions/ck_hp/validate/ck_hp_fifo.c b/regressions/ck_hp/validate/ck_hp_fifo.c
index 4454283c..5820f1aa 100644
--- a/regressions/ck_hp/validate/ck_hp_fifo.c
+++ b/regressions/ck_hp/validate/ck_hp_fifo.c
@@ -55,6 +55,7 @@ static struct affinity a;
 static int size;
 static unsigned int barrier;
 static unsigned int e_barrier;
+static unsigned int s_barrier;
 
 static void *
 test(void *c)
@@ -98,6 +99,9 @@ test(void *c)
 		}
 	}
 
+	ck_pr_inc_uint(&s_barrier);
+	while (ck_pr_load_uint(&s_barrier) < (unsigned int)nthr);
+
 	for (i = 0; i < ITERATIONS; i++) {
 		for (j = 0; j < size; j++) {
 			fifo_entry = malloc(sizeof(ck_hp_fifo_entry_t));