Merge pull request #186 from coolljt0725/arm64_epoll
move epoll syscall to arch specific to enable containerd run on arm64
This commit is contained in:
commit
d34c458529
3 changed files with 93 additions and 4 deletions
|
@ -5,6 +5,7 @@ import (
|
|||
"syscall"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/docker/containerd/archutils"
|
||||
"github.com/docker/containerd/runtime"
|
||||
)
|
||||
|
||||
|
@ -14,7 +15,7 @@ func NewMonitor() (*Monitor, error) {
|
|||
exits: make(chan runtime.Process, 1024),
|
||||
ooms: make(chan string, 1024),
|
||||
}
|
||||
fd, err := syscall.EpollCreate1(0)
|
||||
fd, err := archutils.EpollCreate1(0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -47,7 +48,7 @@ func (m *Monitor) Monitor(p runtime.Process) error {
|
|||
Fd: int32(fd),
|
||||
Events: syscall.EPOLLHUP,
|
||||
}
|
||||
if err := syscall.EpollCtl(m.epollFd, syscall.EPOLL_CTL_ADD, fd, &event); err != nil {
|
||||
if err := archutils.EpollCtl(m.epollFd, syscall.EPOLL_CTL_ADD, fd, &event); err != nil {
|
||||
return err
|
||||
}
|
||||
EpollFdCounter.Inc(1)
|
||||
|
@ -67,7 +68,7 @@ func (m *Monitor) MonitorOOM(c runtime.Container) error {
|
|||
Fd: int32(fd),
|
||||
Events: syscall.EPOLLHUP | syscall.EPOLLIN,
|
||||
}
|
||||
if err := syscall.EpollCtl(m.epollFd, syscall.EPOLL_CTL_ADD, fd, &event); err != nil {
|
||||
if err := archutils.EpollCtl(m.epollFd, syscall.EPOLL_CTL_ADD, fd, &event); err != nil {
|
||||
return err
|
||||
}
|
||||
EpollFdCounter.Inc(1)
|
||||
|
@ -82,7 +83,7 @@ func (m *Monitor) Close() error {
|
|||
func (m *Monitor) start() {
|
||||
var events [128]syscall.EpollEvent
|
||||
for {
|
||||
n, err := syscall.EpollWait(m.epollFd, events[:], -1)
|
||||
n, err := archutils.EpollWait(m.epollFd, events[:], -1)
|
||||
if err != nil {
|
||||
if err == syscall.EINTR {
|
||||
continue
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue