PERFORCE change 164493 for review
Zhao Shuai
zhaoshuai at FreeBSD.org
Tue Jun 16 12:16:53 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=164493
Change 164493 by zhaoshuai at zhaoshuai on 2009/06/16 12:16:44
wrongly use #elif, replace it by #else
Affected files ...
.. //depot/projects/soc2009/fifo/fifo_test/functionality/kqueue.c#2 edit
.. //depot/projects/soc2009/fifo/fifo_test/functionality/poll.c#2 edit
.. //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#5 edit
Differences ...
==== //depot/projects/soc2009/fifo/fifo_test/functionality/kqueue.c#2 (text+ko) ====
@@ -11,34 +11,58 @@
#include <sys/event.h>
#include "test.h"
+#define TEST_READ 0
+
int main()
{
int fd, kq, ret, n;
- struct kevent rkev;
- char rbuf[BUF_SIZE];
+ struct kevent rkev, wkev;
+ char rbuf[BUF_SIZE], wbuf[BUF_SIZE];
kq = kqueue();
if (kq < 0) {
perror("kqueue error");
return (1);
}
+#if TEST_READ
fd = open(FIFO_PATH, O_RDONLY);
+#else
+ fd = open(FIFO_PATH, O_WRONLY);
+#endif
if (fd < 0) {
perror("open error");
return (2);
}
-
+#if TEST_READ
EV_SET(&rkev, fd, EVFILT_READ, EV_ADD, 0, 0, NULL);
kevent(kq, &rkev, 1, NULL, 0, NULL);
+#else
+ EV_SET(&wkev, fd, EVFILT_WRITE, EV_ADD, 0, 0, NULL);
+ kevent(kq, &wkev, 1, NULL, 0, NULL);
+#endif
+
while (1) {
+ printf("wait on kevent...\n");
+#if TEST_READ
ret = kevent(kq, NULL, 0, &rkev, 1, NULL);
+#else
+ ret = kevent(kq, NULL, 0, &wkev, 1, NULL);
+#endif
+ printf("kevent returned %d, fd = %d...\n", ret, rkev.ident);
if (ret > 0 && rkev.ident == fd) {
+#if TEST_READ
n = read(fd, rbuf, BUF_SIZE);
if (n == 0)
break;
printf("%s", rbuf);
memset(rbuf, 0, n);
+#else
+ n = read(0, wbuf, BUF_SIZE);
+ if (n == 0)
+ break;
+ write(fd, wbuf, n);
+#endif
} else if (ret < 0) {
perror("kevent error");
break;
==== //depot/projects/soc2009/fifo/fifo_test/functionality/poll.c#2 (text+ko) ====
@@ -12,7 +12,7 @@
#include <poll.h>
#include "test.h"
-#define TEST_READ 1
+#define TEST_READ 0
int main()
{
@@ -23,7 +23,7 @@
#if TEST_READ
fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK);
#else
- fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK);
+ fd = open(FIFO_PATH, O_WRONLY /* | O_NONBLOCK */);
#endif
if (fd < 0) {
@@ -40,6 +40,7 @@
while (1) {
ret = poll(&pfd, 1, INFTIM);
if (ret > 0) {
+ printf("poll returned %d, revents = %d\n", ret, (int)pfd.revents);
#if TEST_READ
if (pfd.revents & POLLRDNORM) {
n = read(fd, rbuf, BUF_SIZE);
@@ -58,7 +59,7 @@
return (0);
else { /* poll error */
perror("poll error");
- return (2);
+ return (ret);
}
}
return (0);
==== //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#5 (text+ko) ====
@@ -16,7 +16,7 @@
#include "test.h"
/* set this value to 0 when testing write */
-#define TEST_READ 1
+#define TEST_READ 0
int main()
{
@@ -28,8 +28,8 @@
FD_ZERO(&wset);
#if TEST_READ
fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK);
-#elif
- fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK);
+#else
+ fd = open(FIFO_PATH, O_WRONLY /* | O_NONBLOCK */);
#endif
if (fd < 0) {
perror("open error");
@@ -40,7 +40,7 @@
FD_SET(fd, &wset);
#if TEST_READ
ret = select(fd+1, &rset, NULL, NULL, NULL);
-#elif
+#else
ret = select(fd+1, NULL, &wset, NULL, NULL);
#endif
if (ret > 0) {
@@ -52,7 +52,7 @@
printf("%s", buf);
memset(buf, 0, n);
}
-#elif
+#else
if (FD_ISSET(fd, &wset)) {
n = read(0, buf, BUF_SIZE);
if (n <= 0)
More information about the p4-projects
mailing list