]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: drop EV_RECEIPT support from network pollster on kqueue
authorMikio Hara <mikioh.mikioh@gmail.com>
Wed, 24 Jul 2013 15:24:17 +0000 (00:24 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Wed, 24 Jul 2013 15:24:17 +0000 (00:24 +0900)
Currently Darwin and FreeBSD support and NetBSD and OpenBSD do not
support EV_RECEIPT flag. We will drop use of EV_RECEIPT for now.

Also enables to build runtime-integrated network pollster on
freebsd/amd64,386 and openbsd/amd64,386. It just does build but never
runs pollster stuff.

This is in preparation for runtime-integrated network pollster for BSD
variants.

Update #5199

R=dvyukov, minux.ma
CC=golang-dev
https://golang.org/cl/11759044

src/pkg/runtime/netpoll.goc
src/pkg/runtime/netpoll_kqueue.c
src/pkg/runtime/netpoll_stub.c

index 2e855556c3a425fb2ef50bb6849054edf41a8c38..ec9a31d2dac0c2651328bbd6de377abee4e66fdf 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin linux windows
+// +build darwin freebsd,amd64 freebsd,386 linux openbsd windows
 
 package net
 
index 3ded4ee0b0f4f8872edd90a7697f190b788b24d5..d3883dfb3c41625d9e7c696558a4ee3404d67980 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin
+// +build darwin freebsd,amd64 freebsd,386 openbsd
 
 #include "runtime.h"
 #include "defs_GOOS_GOARCH.h"
@@ -37,23 +37,15 @@ runtimeĀ·netpollopen(uintptr fd, PollDesc *pd)
        // when fd is closed.
        ev[0].ident = (uint32)fd;
        ev[0].filter = EVFILT_READ;
-       ev[0].flags = EV_ADD|EV_RECEIPT|EV_CLEAR;
+       ev[0].flags = EV_ADD|EV_CLEAR;
        ev[0].fflags = 0;
        ev[0].data = 0;
        ev[0].udata = (byte*)pd;
        ev[1] = ev[0];
        ev[1].filter = EVFILT_WRITE;
-       n = runtimeĀ·kevent(kq, ev, 2, ev, 2, nil);
+       n = runtimeĀ·kevent(kq, ev, 2, nil, 0, nil);
        if(n < 0)
                return -n;
-       if(n != 2 ||
-               (ev[0].flags&EV_ERROR) == 0 || ev[0].ident != (uint32)fd || ev[0].filter != EVFILT_READ ||
-               (ev[1].flags&EV_ERROR) == 0 || ev[1].ident != (uint32)fd || ev[1].filter != EVFILT_WRITE)
-               return EFAULT;  // just to mark out from other errors
-       if(ev[0].data != 0)
-               return ev[0].data;
-       if(ev[1].data != 0)
-               return ev[1].data;
        return 0;
 }
 
index c6ecf67d159aaa61ad5a17b8ca48f73cf57ee9ee..a785936e4144801e5bf750dc7314805a0d819fc7 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build freebsd netbsd openbsd plan9
+// +build freebsd,arm netbsd plan9
 
 #include "runtime.h"