登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [golang]语言新特性 atomic.Int32 以及临时让 go-git 支持旧版本的方法     [回主站]     [分站链接]
标题
[golang]语言新特性 atomic.Int32 以及临时让 go-git 支持旧版本的方法
clq
浏览(127) + 2024-05-06 18:17:36 发表 编辑

关键字:

[2024-05-06 18:33:36 最后更新]
[golang]语言新特性 atomic.Int32 以及临时让 go-git 支持旧版本的方法

很无语,有这个必要吗? 应该是 go 1.19 中新增的,因为我的 go 1.18.3 编译不过。

--------------------------------------------------------
我是在 go-git 5.12.0 碰到的,甚至小改一下就能让它支持 1.18.3
实际上 go-git 就在 trace.go 中用到了这个不兼容的特性而已。而且只涉及一个变量,如下:

// current is the targets that are enabled for tracing.
current int32 //clq test//atomic.Int32

所以根据代码原意修改一下就可以了,如下。当然生产环境不建议大家这样做。

--------------------------------------------------------
package trace

import (
"fmt"
"log"
"os"
"sync/atomic"
)

var (
// logger is the logger to use for tracing.
logger = newLogger()

// current is the targets that are enabled for tracing.
current int32 //clq test//atomic.Int32
)

func newLogger() *log.Logger {
return log.New(os.Stderr, "", log.Ltime|log.Lmicroseconds|log.Lshortfile)
}

// Target is a tracing target.
type Target int32

const (
// General traces general operations.
General Target = 1 << iota

// Packet traces git packets.
Packet
)

// SetTarget sets the tracing targets.
func SetTarget(target Target) {
atomic.StoreInt32(¤t, int32(target)); //clq
//current.Store(int32(target))
}

// SetLogger sets the logger to use for tracing.
func SetLogger(l *log.Logger) {
logger = l
}

// Print prints the given message only if the target is enabled.
func (t Target) Print(args ...interface{}) {
if int32(t)¤t != 0 { //clq//if int32(t)¤t.Load() != 0 {
logger.Output(2, fmt.Sprint(args...)) // nolint: errcheck
}
}

// Printf prints the given message only if the target is enabled.
func (t Target) Printf(format string, args ...interface{}) {
if int32(t)¤t != 0 { //clq //if int32(t)¤t.Load() != 0 {
logger.Output(2, fmt.Sprintf(format, args...)) // nolint: errcheck
}
}










总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1