terminando de crear el formateador de texto de errores

master
DEV 3 years ago
parent 17f2796511
commit d84b3bb77c

@ -0,0 +1,76 @@
// ------------------------------------------------------------------------
// Project atila
// Active Thing (activething.com) git.activething.com/go
//
// File name rkey.go
// Created by DEV
// Modified 05/02/2024
//
// Copyright 2024 activething.com
// ------------------------------------------------------------------------
// 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 ctxs
import "sync/atomic"
type (
Cancel struct {
active uint32
doneCh chan struct{}
}
)
func NewCancel() *Cancel {
return &Cancel{
active: 1,
doneCh: make(chan struct{}),
}
}
func (c *Cancel) Cancel() {
if atomic.CompareAndSwapUint32(&c.active,1,0) {
close(c.doneCh)
}
}
func (c *Cancel) Done() <-chan struct{} {
return c.doneCh }
func (c *Cancel) IsDone() bool {
return atomic.LoadUint32(&c.active) == 1 }
func (c *Cancel) Wait() {
<-c.doneCh }
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA.
"LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS.
SIDDHARTA
- HERMANN HESSE -
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

@ -0,0 +1,3 @@
module ctxs
go 1.22

@ -24,7 +24,7 @@
package timers
import (
"activething.com/go/gogo/core/errs"
"errs"
)

@ -24,15 +24,10 @@
package timers
import (
"activething.com/go/gogo/core/contexts"
"context"
"ctxs"
"sync/atomic"
"time"
)
type (
@ -42,7 +37,7 @@ type (
state uint32
pulse int64
err atomic.Value
cancel contexts.Cancel
cancel ctxs.Cancel
workFn PulsarWorkFnc
}
@ -55,7 +50,7 @@ type (
func NewPulsar(pulse time.Duration, work PulsarWorkFnc) *Pulsar {
return &Pulsar{
state: uint32(TimerStateCreated),
cancel: *contexts.NewCancel(),
cancel: *ctxs.NewCancel(),
pulse: int64(pulse),
workFn: work,
}

@ -24,13 +24,11 @@
package timers
import (
"activething.com/go/gogo/core/opts"
"container/heap"
"context"
"opts"
"sync/atomic"
"time"
)
const (
@ -57,13 +55,13 @@ type (
)
func NewTimerQueue(options ... opts.OptionFnc[TimerQueue]) *TimerQueue {
func NewTimerQueue(options ... opts.GOptionFnc[TimerQueue]) *TimerQueue {
tq := &TimerQueue{
heap : TimerTaskHeap{},
state: uint32(TimerStateCreated),
}
heap.Init(&tq.heap)
opts.Apply(tq, options ...)
opts.GApply(tq, options ...)
if tq.pushCh == nil {
tq.pushCh = make(chan *TimerTask, timerQueueLen)
}

@ -9,6 +9,7 @@ use (
./core/opts
./core/syncs
./core/timers
./core/ctxs
./app

Loading…
Cancel
Save

Powered by TurnKey Linux.