func (p *Poller) Add(reader *Sock) error {
	rc := C.zpoller_add(p.zpollerT, unsafe.Pointer(reader.zsockT))
	if int(rc) == -1 {
		return fmt.Errorf("error adding reader")
	}
	p.socks = append(p.socks, reader)
	return nil
}
Add adds a reader to be polled.
package goczmq
import "C"
import (
	"fmt"
	"unsafe"
)
type Poller struct {
	zpollerT *C.struct__zpoller_t
	socks    []*Sock
}
func NewPoller(readers ...*Sock) (*Poller, error) {
	var p *Poller
	if len(readers) == 0 {
		p = &Poller{
			zpollerT: C.Poller_new(nil),
			socks:    make([]*Sock, 0),
		}
	} else {
		p = &Poller{
			zpollerT: C.Poller_new(unsafe.Pointer(readers[0].zsockT)),
			socks:    make([]*Sock, 0),
		}
		p.socks = append(p.socks, readers[0])
		if len(readers) == 1 {
			return p, nil
		}
		for _, reader := range readers[1:] {
			err := p.Add(reader)
			if err != nil {
				return nil, err
			}
		}
	}
	return p, nil
}