Implement simple, thread-safe atomic flag type
This commit is contained in:
		
							
								
								
									
										27
									
								
								atomicflag/atomicflag.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								atomicflag/atomicflag.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| package atomicflag | ||||
|  | ||||
| import ( | ||||
| 	"sync" | ||||
| ) | ||||
|  | ||||
|  | ||||
| type atomicflag struct { | ||||
| 	value bool | ||||
| 	mutex sync.RWMutex | ||||
| } | ||||
|  | ||||
| func New(value bool) *atomicflag { | ||||
| 	return &atomicflag{value: value} | ||||
| } | ||||
|  | ||||
| func (f* atomicflag) Get() bool { | ||||
| 	f.mutex.RLock() | ||||
| 	defer f.mutex.RUnlock() | ||||
| 	return f.value | ||||
| } | ||||
|  | ||||
| func (f* atomicflag) Set(value bool) { | ||||
| 	f.mutex.Lock() | ||||
| 	defer f.mutex.Unlock() | ||||
| 	f.value = value | ||||
| } | ||||
		Reference in New Issue
	
	Block a user