isrun.go 481 B

123456789101112131415161718192021222324252627282930313233
  1. package isrun
  2. import "sync"
  3. /*
  4. Потокобезопасный признак запуска сражения
  5. */
  6. type IsRun struct {
  7. val bool
  8. block sync.RWMutex
  9. }
  10. func NewIsRun() *IsRun {
  11. return &IsRun{}
  12. }
  13. func (sf *IsRun) Get() bool {
  14. sf.block.RLock()
  15. defer sf.block.RUnlock()
  16. return sf.val
  17. }
  18. func (sf *IsRun) Set() {
  19. sf.block.Lock()
  20. defer sf.block.Unlock()
  21. sf.val = true
  22. }
  23. func (sf *IsRun) Reset() {
  24. sf.block.Lock()
  25. defer sf.block.Unlock()
  26. sf.val = false
  27. }