| 1234567891011121314151617181920212223242526272829303132 |
- package safeint
- import "sync"
- /*
- Потокобезопасное целое
- */
- // SafeInt -- потокобезопасное целое
- type SafeInt struct {
- val int
- block sync.RWMutex
- }
- // NewSafeInt -- возвращает новый *SafeInt
- func NewSafeInt() *SafeInt {
- return &SafeInt{}
- }
- // Get -- возвращает хранимое значение
- func (sf *SafeInt) Get() int {
- sf.block.RLock()
- defer sf.block.RUnlock()
- return sf.val
- }
- // Set -- устанавливает хранимое значение
- func (sf *SafeInt) Set(val int) {
- sf.block.Lock()
- defer sf.block.Unlock()
- sf.val = val
- }
|