成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 1.23引入的新Bug?其實只是文檔沒看仔細

開發 前端
目前Ian Lance Taylor將該issue改名為“proposal: cmd/vet: warn about copying a time.Timer value”,即建議在vet中增加warning,但他也不保證該proposal能被accept,因為要看后續是否會受到很多類似的問題報告。

上個月中旬,Go 1.23版本正式發布!這也是Russ Cox作為Go tech leader的最后一個發布版本,他本人在該版本中做出重要貢獻,那就是解決了一直困擾Go團隊的Timer/Ticker的GC回收問題,進而解決了Timer的Stop和Reset很難正確使用的問題。

圖片

不過,就在昨天,一個叫tulir的gopher提出的issue(ttps://github.com/golang/go/issues/69186)差點讓Russ Cox“晚節不保”:)。該issue提到,他寫的一段使用了Timer的代碼在Go 1.22中工作正常,但在Go 1.23中就無法工作了,具體現象是:在linux上,整個程序hang住不動了,而在macOS上,則直接引發panic異常退出:"fatal error: ts set in timer"。

隨即,Go101老貘兄“補上一刀”,給出了一個更為簡潔的示例:

package main

import "time"

func main() {
 illegalTimerCopy := *time.NewTimer(time.Second)
 illegalTimerCopy.Stop() // block for ever
}

我也實測了該示例,在我的macOS上,用go1.23.0運行,直接panic,即便使用GODEBUG=synctimerchan=1退回到Go 1.23以前的行為也不行。在centos 7.9(kernel 3.10)上跑,也發生了和issue一樣的現象:hang住不動。

到這里,我也不得不認為:這是go 1.23 Timer引入的新bug!但真相果真如此嗎?

幾個小時后,Go大神Ian Lance Taylor現身說法了。他居然表示對Go 1.23之前的版本依然可以正確運行上述代碼表示“驚訝”。

圖片圖片

之后,他表示從Go 1.4版本開始,Go標準庫文檔(#8776)就對Timer類型的使用做出了限制:"A Timer must be created with NewTimer or AfterFunc.",即Timer只能使用NewTimer和AfterFunc創建。

圖片圖片

而像上述代碼中的對Timer實例的Copy的行為則是未定義的。

圖片圖片

目前Ian Lance Taylor將該issue改名為“proposal: cmd/vet: warn about copying a time.Timer value”,即建議在vet中增加warning,但他也不保證該proposal能被accept,因為要看后續是否會受到很多類似的問題報告。

蓋棺定論了,原來是我們的文檔看的還不夠仔細:)。

不過,即便go vet不增加對Timer copy的warning,我也想建議官方修改一下Timer的doc描述,再直白一些,就像對sync.Mutex那樣:A Mutex must not be copied after first use.

圖片圖片

在Timer文檔中,也補充依據:A Timer must not be copied after being created.

你說呢?

責任編輯:武曉燕 來源: TonyBai
相關推薦

2011-09-05 11:04:25

Ubuntu 11.1LightDM

2010-01-22 09:52:32

JPA 2.0Java EE 6

2024-09-02 00:30:41

Go語言場景

2021-12-09 08:50:35

Kubernetes增強功能版本更新

2009-12-07 10:40:24

.NET 4.0

2015-03-18 14:02:25

生物識別認證Windows10

2009-04-27 12:26:45

AMD單核Nehalem

2022-02-11 21:01:18

GoNetip網絡庫

2023-03-20 21:44:10

微軟GPT-4AI

2015-11-12 10:56:13

2022-08-19 10:27:39

系統模型

2025-05-06 08:00:35

2025-05-06 05:00:00

2021-07-24 13:20:40

iOS應用系統

2022-01-24 16:06:58

Linux 5.17RTLA工具

2015-02-04 10:49:13

Visual C++C++Windows API

2024-09-09 08:56:03

2009-09-18 12:15:53

GoogleChrome 3.0HTML 5

2023-03-30 09:59:43

2018-03-09 10:19:09

Windows 10安裝包GitHub
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲福利在线观看 | 日韩成人精品视频 | 精品国产免费人成在线观看 | 精品国产免费一区二区三区五区 | 欧美日韩中文在线 | 在线观看亚洲一区二区 | 国产精品美女久久久久aⅴ国产馆 | 一级欧美日韩 | av不卡一区 | 亚洲一区二区精品视频在线观看 | 国产成人精品一区二区三 | www.天天操| 麻豆国产一区二区三区四区 | 国产成人精品午夜视频免费 | 视频二区 | 亚洲人成人一区二区在线观看 | 99在线免费观看视频 | 久久久久久久久久久久久9999 | 精品一区二区三区日本 | 91精品国产综合久久久亚洲 | 午夜久草 | 午夜影院在线观看免费 | 精品国产一区二区三区日日嗨 | 午夜成人免费视频 | 国产精品成av人在线视午夜片 | 一区中文字幕 | 日韩在线一区二区三区 | 天天艹逼网 | 成人精品一区二区三区中文字幕 | 亚洲精品乱码久久久久久久久久 | 91秦先生艺校小琴 | 国产精品久久久久久久久久久久 | 精品久久精品 | www.久| 91九色porny首页最多播放 | 国产成人99av超碰超爽 | 日韩在线视频免费观看 | 亚洲精品一区中文字幕 | 亚洲欧美国产精品一区二区 | 一区二区三区四区在线视频 | 亚洲精品欧洲 |