github.com/pharosnet/flyline@v1.0.2/status.go (about) 1 package flyline 2 3 import "sync/atomic" 4 5 const ( 6 statusRunning = int64(1) 7 statusClosed = int64(0) 8 ) 9 10 // status: running, closed 11 type status struct { 12 v int64 13 rhs [padding]int64 14 } 15 16 func (s *status) setRunning() { 17 atomic.StoreInt64(&s.v, statusRunning) 18 } 19 20 func (s *status) isRunning() bool { 21 return statusRunning == atomic.LoadInt64(&s.v) 22 } 23 24 func (s *status) setClosed() { 25 atomic.StoreInt64(&s.v, statusClosed) 26 } 27 28 func (s *status) isClosed() bool { 29 return statusClosed == atomic.LoadInt64(&s.v) 30 }