mirror of https://github.com/kidoman/embd
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:
parent
e1a90ade4f
commit
5f8a0fced0
|
@ -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
|
||||
}
|
||||
|
|
|
@ -276,6 +276,10 @@ func (p *digitalPin) Close() error {
|
|||
return err
|
||||
}
|
||||
|
||||
if err := p.StopWatching(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !p.initialized {
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue