PatchSet 5177 
Date: 2004/09/17 08:31:56
Author: guilhem
Branch: HEAD
Tag: (none) 
Log:
Fix for jthreadedRecvFrom (use select instead of poll)

2004-09-17  Noa Resare  <[EMAIL PROTECTED]>
        Guilhem Lavaux  <[EMAIL PROTECTED]>

        * kaffe/kaffevm/systems/unix-pthreads/syscalls.c:
        (jthreadedRecvfrom) use select() instead of poll()

Members: 
        ChangeLog:1.2732->1.2733 
        kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.20->1.21 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2732 kaffe/ChangeLog:1.2733
--- kaffe/ChangeLog:1.2732      Thu Sep 16 23:19:23 2004
+++ kaffe/ChangeLog     Fri Sep 17 08:31:56 2004
@@ -1,3 +1,9 @@
+2004-09-17  Noa Resare  <[EMAIL PROTECTED]>
+       Guilhem Lavaux  <[EMAIL PROTECTED]>
+
+       * kaffe/kaffevm/systems/unix-pthreads/syscalls.c:
+       (jthreadedRecvfrom) use select() instead of poll()
+
 2004-09-16  Noa Resare  <[EMAIL PROTECTED]>
 
        * kaffe/kaffevm/kaffe-gc/gc-mem.c (gc_block_alloc):
Index: kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c
diff -u kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.20 
kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.21
--- kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.20   Fri Sep 10 00:34:24 
2004
+++ kaffe/kaffe/kaffevm/systems/unix-pthreads/syscalls.c        Fri Sep 17 08:31:59 
2004
@@ -19,9 +19,7 @@
 #include "jsyscall.h"
 #include "jsignal.h"
 #include "nets.h"
-#if defined(HAVE_SYS_POLL_H)
-#include <sys/poll.h>
-#endif
+
 #if defined(HAVE_SYS_WAIT_H)
 #include <sys/wait.h>
 #endif
@@ -617,13 +615,9 @@
 {
        int r;
        jlong deadline = 0;
-       int fd_flags;
        int poll_timeout;
 
-       struct pollfd sp = {fd, POLLIN|POLLPRI, 0};
- 
-       fd_flags = fcntl(fd, F_GETFL);
-       fcntl(fd, F_SETFL, fd_flags|O_NONBLOCK);
+       jthread_set_blocking(fd, 0);
        SET_DEADLINE(deadline, timeout)
        for (;;) {
                r = recvfrom(fd, buf, len, flags, from, fromlen);
@@ -634,11 +628,11 @@
                IGNORE_EINTR(r)
                poll_timeout = deadline - currentTime();
                if (poll_timeout > 0) {
-                       poll(&sp, 1, poll_timeout);
+                       waitForTimeout(fd, poll_timeout);
                }
                BREAK_IF_LATE(deadline, timeout)
        }
-       fcntl(fd, F_SETFL, fd_flags);
+       jthread_set_blocking(fd, 1);
        SET_RETURN_OUT(r, out, r)
        return (r);
 }

_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to