diff mbox

[PATCHv3] linux-generic: test: shmem: atomic check+open fifo

Message ID 1459503604-4622-1-git-send-email-christophe.milard@linaro.org
State New
Headers show

Commit Message

Christophe Milard April 1, 2016, 9:40 a.m. UTC
Fixes: https://bugs.linaro.org/show_bug.cgi?id=2146 (CID 159395)
The open system call is directely used to check the presence of the fifo
and open it at the same time.

Signed-off-by: Christophe Milard <christophe.milard@linaro.org>
---
 since v2: bug URL added (Anders)
 since v1: changed loop to avoid open() line duplication (Maxim)

 platform/linux-generic/test/shmem/shmem_linux.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/platform/linux-generic/test/shmem/shmem_linux.c b/platform/linux-generic/test/shmem/shmem_linux.c
index 12266cc..0f15c9e 100644
--- a/platform/linux-generic/test/shmem/shmem_linux.c
+++ b/platform/linux-generic/test/shmem/shmem_linux.c
@@ -115,12 +115,14 @@  int main(int argc __attribute__((unused)), char *argv[])
 	 * Just die if time expire as there is no fifo to communicate
 	 * through... */
 	sprintf(fifo_name, FIFO_NAME_FMT, odp_app);
-	while (access(fifo_name, W_OK) != 0) {
+	for (;;) {
+		fifo_fd = open(fifo_name, O_WRONLY);
+		if (fifo_fd >= 0)
+			break;
 		sleep(1);
-		if  (nb_sec++ == 30)
+		if (nb_sec++ == 30)
 			exit(1);
 	}
-	fifo_fd = open(fifo_name, O_WRONLY);
 	printf("pipe found\n");
 
 	/* the linux named pipe has now been found, meaning that the