diff --git a/src/internal/runtime/syscall/defs_linux_386.go b/src/internal/runtime/syscall/defs_linux_386.go index 2cfedab7c68107..82851922f7d780 100644 --- a/src/internal/runtime/syscall/defs_linux_386.go +++ b/src/internal/runtime/syscall/defs_linux_386.go @@ -10,11 +10,13 @@ const ( SYS_PRCTL = 172 SYS_EPOLL_CTL = 255 SYS_EPOLL_PWAIT = 319 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 329 SYS_EPOLL_PWAIT2 = 441 SYS_EVENTFD2 = 328 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_amd64.go b/src/internal/runtime/syscall/defs_linux_amd64.go index f664a59ad77ca3..2b39887b2ae133 100644 --- a/src/internal/runtime/syscall/defs_linux_amd64.go +++ b/src/internal/runtime/syscall/defs_linux_amd64.go @@ -10,11 +10,13 @@ const ( SYS_PRCTL = 157 SYS_EPOLL_CTL = 233 SYS_EPOLL_PWAIT = 281 + SYS_EPOLL_WAIT = 232 SYS_EPOLL_CREATE1 = 291 SYS_EPOLL_PWAIT2 = 441 SYS_EVENTFD2 = 290 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_arm.go b/src/internal/runtime/syscall/defs_linux_arm.go index 2850199a652cc5..027dbfafd79a33 100644 --- a/src/internal/runtime/syscall/defs_linux_arm.go +++ b/src/internal/runtime/syscall/defs_linux_arm.go @@ -10,11 +10,13 @@ const ( SYS_PRCTL = 172 SYS_EPOLL_CTL = 251 SYS_EPOLL_PWAIT = 346 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 357 SYS_EPOLL_PWAIT2 = 441 SYS_EVENTFD2 = 356 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_arm64.go b/src/internal/runtime/syscall/defs_linux_arm64.go index 1c951c1e7d2c60..5e3b40bbbee4ea 100644 --- a/src/internal/runtime/syscall/defs_linux_arm64.go +++ b/src/internal/runtime/syscall/defs_linux_arm64.go @@ -8,6 +8,7 @@ const ( SYS_EPOLL_CREATE1 = 20 SYS_EPOLL_CTL = 21 SYS_EPOLL_PWAIT = 22 + SYS_EPOLL_WAIT = -1 SYS_FCNTL = 25 SYS_PRCTL = 167 SYS_MPROTECT = 226 @@ -15,6 +16,7 @@ const ( SYS_EVENTFD2 = 19 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_loong64.go b/src/internal/runtime/syscall/defs_linux_loong64.go index dfeee05737d51b..43764824bdccb7 100644 --- a/src/internal/runtime/syscall/defs_linux_loong64.go +++ b/src/internal/runtime/syscall/defs_linux_loong64.go @@ -8,6 +8,7 @@ const ( SYS_EPOLL_CREATE1 = 20 SYS_EPOLL_CTL = 21 SYS_EPOLL_PWAIT = 22 + SYS_EPOLL_WAIT = -1 SYS_FCNTL = 25 SYS_PRCTL = 167 SYS_MPROTECT = 226 @@ -15,6 +16,7 @@ const ( SYS_EVENTFD2 = 19 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_mips64x.go b/src/internal/runtime/syscall/defs_linux_mips64x.go index b9b8818d302646..c3ba732fad91e2 100644 --- a/src/internal/runtime/syscall/defs_linux_mips64x.go +++ b/src/internal/runtime/syscall/defs_linux_mips64x.go @@ -12,11 +12,13 @@ const ( SYS_PRCTL = 5153 SYS_EPOLL_CTL = 5208 SYS_EPOLL_PWAIT = 5272 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 5285 SYS_EPOLL_PWAIT2 = 5441 SYS_EVENTFD2 = 5284 EFD_NONBLOCK = 0x80 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_mipsx.go b/src/internal/runtime/syscall/defs_linux_mipsx.go index f147865f447c6f..401a502d06c3b0 100644 --- a/src/internal/runtime/syscall/defs_linux_mipsx.go +++ b/src/internal/runtime/syscall/defs_linux_mipsx.go @@ -12,11 +12,13 @@ const ( SYS_PRCTL = 4192 SYS_EPOLL_CTL = 4249 SYS_EPOLL_PWAIT = 4313 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 4326 SYS_EPOLL_PWAIT2 = 4441 SYS_EVENTFD2 = 4325 EFD_NONBLOCK = 0x80 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_ppc64x.go b/src/internal/runtime/syscall/defs_linux_ppc64x.go index 81421089db4686..f5633fefd7f6c8 100644 --- a/src/internal/runtime/syscall/defs_linux_ppc64x.go +++ b/src/internal/runtime/syscall/defs_linux_ppc64x.go @@ -12,11 +12,13 @@ const ( SYS_PRCTL = 171 SYS_EPOLL_CTL = 237 SYS_EPOLL_PWAIT = 303 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 315 SYS_EPOLL_PWAIT2 = 441 SYS_EVENTFD2 = 314 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_riscv64.go b/src/internal/runtime/syscall/defs_linux_riscv64.go index dfeee05737d51b..43764824bdccb7 100644 --- a/src/internal/runtime/syscall/defs_linux_riscv64.go +++ b/src/internal/runtime/syscall/defs_linux_riscv64.go @@ -8,6 +8,7 @@ const ( SYS_EPOLL_CREATE1 = 20 SYS_EPOLL_CTL = 21 SYS_EPOLL_PWAIT = 22 + SYS_EPOLL_WAIT = -1 SYS_FCNTL = 25 SYS_PRCTL = 167 SYS_MPROTECT = 226 @@ -15,6 +16,7 @@ const ( SYS_EVENTFD2 = 19 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/defs_linux_s390x.go b/src/internal/runtime/syscall/defs_linux_s390x.go index 1d9d5b221943b0..48ebfbc6cdfb1f 100644 --- a/src/internal/runtime/syscall/defs_linux_s390x.go +++ b/src/internal/runtime/syscall/defs_linux_s390x.go @@ -10,11 +10,13 @@ const ( SYS_PRCTL = 172 SYS_EPOLL_CTL = 250 SYS_EPOLL_PWAIT = 312 + SYS_EPOLL_WAIT = -1 SYS_EPOLL_CREATE1 = 327 SYS_EPOLL_PWAIT2 = 441 SYS_EVENTFD2 = 323 EFD_NONBLOCK = 0x800 + NOSYS = -1 ) type EpollEvent struct { diff --git a/src/internal/runtime/syscall/syscall_linux.go b/src/internal/runtime/syscall/syscall_linux.go index 83df825169b907..82524c23d245fb 100644 --- a/src/internal/runtime/syscall/syscall_linux.go +++ b/src/internal/runtime/syscall/syscall_linux.go @@ -29,8 +29,14 @@ func EpollWait(epfd int32, events []EpollEvent, maxev, waitms int32) (n int32, e } else { ev = unsafe.Pointer(&_zero) } - r1, _, e := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(ev), uintptr(maxev), uintptr(waitms), 0, 0) - return int32(r1), e + + if SYS_EPOLL_WAIT != NOSYS { + r1, _, e := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(ev), uintptr(maxev), uintptr(waitms), 0, 0) + return int32(r1), e + } else { + r1, _, e := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(ev), uintptr(maxev), uintptr(waitms), 0, 0) + return int32(r1), e + } } func EpollCtl(epfd, op, fd int32, event *EpollEvent) (errno uintptr) {