Make granule of reuse the granule of release (avoid exporting 30 lines)
This commit is contained in:
parent
ebbd1974df
commit
78c216486f
@ -1,7 +1,6 @@
|
|||||||
package afterlock
|
package afterlock
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"after-lock/atomicflag"
|
|
||||||
"time"
|
"time"
|
||||||
"sync"
|
"sync"
|
||||||
"errors"
|
"errors"
|
||||||
@ -30,8 +29,8 @@ type AfterLock struct {
|
|||||||
LoopDelay uint
|
LoopDelay uint
|
||||||
keyboardDeviceNode string
|
keyboardDeviceNode string
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
stopFlag *atomicflag.AtomicFlag
|
stopFlag *AtomicFlag
|
||||||
keypressFlag *atomicflag.AtomicFlag
|
keypressFlag *AtomicFlag
|
||||||
Display Display
|
Display Display
|
||||||
LockScreen Lockscreen
|
LockScreen Lockscreen
|
||||||
KeypressDetector KeypressDetector
|
KeypressDetector KeypressDetector
|
||||||
@ -41,8 +40,8 @@ type AfterLock struct {
|
|||||||
func New(keyboardDeviceNode string) *AfterLock {
|
func New(keyboardDeviceNode string) *AfterLock {
|
||||||
return &AfterLock{
|
return &AfterLock{
|
||||||
keyboardDeviceNode: keyboardDeviceNode,
|
keyboardDeviceNode: keyboardDeviceNode,
|
||||||
stopFlag: atomicflag.New(false),
|
stopFlag: NewAtomicFlag(false),
|
||||||
keypressFlag: atomicflag.New(false),
|
keypressFlag: NewAtomicFlag(false),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
package atomicflag
|
package afterlock
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
// AtomicFlag implements a simple, thread-safe boolean flag
|
||||||
type AtomicFlag struct {
|
type AtomicFlag struct {
|
||||||
value bool
|
value bool
|
||||||
mutex sync.RWMutex
|
mutex sync.RWMutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(value bool) *AtomicFlag {
|
// NewAtomicFlag builds a new instance
|
||||||
|
func NewAtomicFlag(value bool) *AtomicFlag {
|
||||||
return &AtomicFlag{value: value}
|
return &AtomicFlag{value: value}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the flag
|
||||||
func (f *AtomicFlag) Get() bool {
|
func (f *AtomicFlag) Get() bool {
|
||||||
f.mutex.RLock()
|
f.mutex.RLock()
|
||||||
defer f.mutex.RUnlock()
|
defer f.mutex.RUnlock()
|
||||||
return f.value
|
return f.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the flag
|
||||||
func (f *AtomicFlag) Set(value bool) {
|
func (f *AtomicFlag) Set(value bool) {
|
||||||
f.mutex.Lock()
|
f.mutex.Lock()
|
||||||
defer f.mutex.Unlock()
|
defer f.mutex.Unlock()
|
Loading…
Reference in New Issue
Block a user