Stop Watching pin when Closing

Closing a pin will automatically check and close any pin that where being
watch for interrupt.
This commit is contained in:
SjB 2014-04-09 00:38:19 -04:00
parent e1a90ade4f
commit 5f8a0fced0
2 changed files with 10 additions and 0 deletions

View File

@ -100,6 +100,12 @@ func (io *gpioDriver) RegisterInterrupt(p InterruptPin) error {
func (io *gpioDriver) UnregisterInterrupt(p InterruptPin) error {
fd := p.Fd()
// check if we are watching this pin
if _, ok := io.watchEventCallbacks[fd]; !ok {
return nil
}
if err := syscall.EpollCtl(epollFD, syscall.EPOLL_CTL_DEL, fd, nil); err != nil {
return err
}

View File

@ -276,6 +276,10 @@ func (p *digitalPin) Close() error {
return err
}
if err := p.StopWatching(); err != nil {
return err
}
if !p.initialized {
return nil
}