Fix race condition in test 25

This commit is contained in:
David van Moolenbroek 2009-07-09 11:44:35 +00:00
parent 693a6652ca
commit f15d1fb13d

View file

@ -499,7 +499,7 @@ void test25c()
if ((fd1 = open("fifo", O_WRONLY)) != 3) e(57); if ((fd1 = open("fifo", O_WRONLY)) != 3) e(57);
if (write(fd1, "I did see Elvis.\n", 18) != 18) e(58); if (write(fd1, "I did see Elvis.\n", 18) != 18) e(58);
/* Keep open till second reader is opened. */ /* Keep open till third reader is opened. */
while (stat("/tmp/sema.25", &st) != 0) sleep(1); while (stat("/tmp/sema.25", &st) != 0) sleep(1);
if (close(fd1) != 0) e(59); if (close(fd1) != 0) e(59);
exit(0); exit(0);
@ -509,12 +509,12 @@ void test25c()
if (strncmp(buf, "I ", 2) != 0) e(62); if (strncmp(buf, "I ", 2) != 0) e(62);
if (close(fd1) != 0) e(63); if (close(fd1) != 0) e(63);
if ((fd1 = open("fifo", O_RDONLY)) != 3) e(64); if ((fd1 = open("fifo", O_RDONLY)) != 3) e(64);
/* Signal second reader is open. */
Creat("/tmp/sema.25");
if (read(fd1, buf, 4) != 4) e(65); if (read(fd1, buf, 4) != 4) e(65);
if (strncmp(buf, "did ", 4) != 0) e(66); if (strncmp(buf, "did ", 4) != 0) e(66);
if ((fd2 = open("fifo", O_RDONLY)) != 4) e(67); if ((fd2 = open("fifo", O_RDONLY)) != 4) e(67);
/* Signal third reader is open. */
Creat("/tmp/sema.25");
if (read(fd2, buf, BUF_SIZE) != 12) e(68); if (read(fd2, buf, BUF_SIZE) != 12) e(68);
if (strncmp(buf, "see Elvis.\n", 12) != 0) e(69); if (strncmp(buf, "see Elvis.\n", 12) != 0) e(69);
if (close(fd2) != 0) e(70); if (close(fd2) != 0) e(70);