From 3e0491354cefa829b09c2ef999c9e2839a96af1c Mon Sep 17 00:00:00 2001 From: Drahoslav Date: Tue, 14 Nov 2017 17:06:00 +0100 Subject: [PATCH] Do minor refactoring --- rpio.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/rpio.go b/rpio.go index 5fdc5dd..84d4de7 100644 --- a/rpio.go +++ b/rpio.go @@ -265,24 +265,19 @@ func Open() (err error) { var base int64 // Open fd for rw mem access; try gpiomem first - if file, err = os.OpenFile( - "/dev/gpiomem", - os.O_RDWR|os.O_SYNC, - 0); os.IsNotExist(err) { - file, err = os.OpenFile( - "/dev/mem", - os.O_RDWR|os.O_SYNC, - 0) - base = getGPIOBase() + file, err = os.OpenFile("/dev/gpiomem", os.O_RDWR|os.O_SYNC, 0) + if !os.IsNotExist(err) { + return } - + file, err = os.OpenFile("/dev/mem", os.O_RDWR|os.O_SYNC, 0) if err != nil { return } - // FD can be closed after memory mapping defer file.Close() + base = getGPIOBase() + memlock.Lock() defer memlock.Unlock() @@ -292,7 +287,8 @@ func Open() (err error) { base, memLength, syscall.PROT_READ|syscall.PROT_WRITE, - syscall.MAP_SHARED) + syscall.MAP_SHARED, + ) if err != nil { return