isrun.go 529 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 (сам *IsRun) Get() bool {
  14. сам.block.RLock()
  15. defer сам.block.RUnlock()
  16. return сам.val
  17. }
  18. func (сам *IsRun) Set() {
  19. сам.block.Lock()
  20. defer сам.block.Unlock()
  21. сам.val = true
  22. }
  23. func (сам *IsRun) Reset() {
  24. сам.block.Lock()
  25. defer сам.block.Unlock()
  26. сам.val = false
  27. }