aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/netpoll_kqueue.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/netpoll_kqueue.go')
-rw-r--r--src/runtime/netpoll_kqueue.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/runtime/netpoll_kqueue.go b/src/runtime/netpoll_kqueue.go
index 080964bb72..01445dc231 100644
--- a/src/runtime/netpoll_kqueue.go
+++ b/src/runtime/netpoll_kqueue.go
@@ -62,9 +62,9 @@ func netpollarm(pd *pollDesc, mode int) {
// Polls for ready network connections.
// Returns list of goroutines that become runnable.
-func netpoll(block bool) (gp *g) {
+func netpoll(block bool) *g {
if kq == -1 {
- return
+ return nil
}
var tp *timespec
var ts timespec
@@ -81,6 +81,7 @@ retry:
}
goto retry
}
+ var gp guintptr
for i := 0; i < int(n); i++ {
ev := &events[i]
var mode int32
@@ -91,11 +92,11 @@ retry:
mode += 'w'
}
if mode != 0 {
- netpollready((**g)(noescape(unsafe.Pointer(&gp))), (*pollDesc)(unsafe.Pointer(ev.udata)), mode)
+ netpollready(&gp, (*pollDesc)(unsafe.Pointer(ev.udata)), mode)
}
}
- if block && gp == nil {
+ if block && gp == 0 {
goto retry
}
- return gp
+ return gp.ptr()
}