1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
12 type pollDesc
struct {
17 func (pd
*pollDesc
) Init(fd
*netFD
) error
{ pd
.fd
= fd
; return nil }
19 func (pd
*pollDesc
) Close() {}
21 func (pd
*pollDesc
) Lock() {}
23 func (pd
*pollDesc
) Unlock() {}
25 func (pd
*pollDesc
) Wakeup() {}
27 func (pd
*pollDesc
) Evict() bool {
30 syscall
.StopIO(pd
.fd
.sysfd
)
35 func (pd
*pollDesc
) Prepare(mode
int) error
{
42 func (pd
*pollDesc
) PrepareRead() error
{ return pd
.Prepare('r') }
44 func (pd
*pollDesc
) PrepareWrite() error
{ return pd
.Prepare('w') }
46 func (pd
*pollDesc
) Wait(mode
int) error
{
53 func (pd
*pollDesc
) WaitRead() error
{ return pd
.Wait('r') }
55 func (pd
*pollDesc
) WaitWrite() error
{ return pd
.Wait('w') }
57 func (pd
*pollDesc
) WaitCanceled(mode
int) {}
59 func (pd
*pollDesc
) WaitCanceledRead() {}
61 func (pd
*pollDesc
) WaitCanceledWrite() {}
63 func (fd
*netFD
) setDeadline(t time
.Time
) error
{
64 return setDeadlineImpl(fd
, t
, 'r'+'w')
67 func (fd
*netFD
) setReadDeadline(t time
.Time
) error
{
68 return setDeadlineImpl(fd
, t
, 'r')
71 func (fd
*netFD
) setWriteDeadline(t time
.Time
) error
{
72 return setDeadlineImpl(fd
, t
, 'w')
75 func setDeadlineImpl(fd
*netFD
, t time
.Time
, mode
int) error
{
80 if err
:= fd
.incref(); err
!= nil {
85 syscall
.SetReadDeadline(fd
.sysfd
, d
)
87 syscall
.SetWriteDeadline(fd
.sysfd
, d
)
89 syscall
.SetReadDeadline(fd
.sysfd
, d
)
90 syscall
.SetWriteDeadline(fd
.sysfd
, d
)