// // Feb21 // // GO Active Thing // Framework // // http://activething.com/dev/goat // // Dev : Juan V.Navarro // Email: juanvnl@activething.com // Date : 16/02/2021 // // Copyright 2021 the GOAT Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package syncs import ( "sync/atomic" ) type ( // ABool // Type: Struct // Desc: Atomic Bool, estructura para realizar operaciones atomicas // sobre un valor de tipo Bool // ABool struct { // value: valor sobre el que se realizaran las operaciones // atomicas. // value uint32 } ) // NewABool // Desc: Función constructor para ABool // // Prms: val, valor inicial // Rets: Puntero al nuevo objeto creado. // func NewABool(val bool) *ABool { return &ABool{value: boolAsUint32(val)} } // ABool.Get // Desc: // Rets: // func (b *ABool) Get() bool { return atomic.LoadUint32(&b.value) == 1 } // ABool.Set // Desc: // Prms: // func (b *ABool) Set(val bool) { atomic.StoreUint32(&b.value, boolAsUint32(val)) } // ABool.Swap // Desc: // Prms: // func (b *ABool) Swap(new bool) bool { return atomic.SwapUint32(&b.value, boolAsUint32(new)) == 1 } // ABool.CAS // Desc: // Prms: // Rets: // func (b *ABool) CAS(old, new bool) bool { return atomic.CompareAndSwapUint32(&b.value, boolAsUint32(old), boolAsUint32(new)) } // boolAsUint32 // Desc: Convierte un valor de tipo bool a uint32 // Prms: val, valor a convertir // Rets: uint32, El valor segun sea true = 1 o // false = * // func boolAsUint32(val bool) uint32 { if val { return 1 } return 0 } /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA. "LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS. SIDDHARTA - HERMANN HESSE - ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */