作者
Ziheng Liu, Shuofei Zhu, Boqin Qin, Hao Chen, Linhai Song
发表日期
2021/4/19
图书
Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
页码范围
616-629
简介
Go is a statically typed programming language designed for efficient and reliable concurrent programming. For this purpose, Go provides lightweight goroutines and recommends passing messages using channels as a less error-prone means of thread communication. Go has become increasingly popular in recent years and has been adopted to build many important infrastructure software systems. However, a recent empirical study shows that concurrency bugs, especially those due to misuse of channels, exist widely in Go. These bugs severely hurt the reliability of Go concurrent systems. To fight Go concurrency bugs caused by misuse of channels, this paper proposes a static concurrency bug detection system, GCatch, and an automated concurrency bug fixing system, GFix. After disentangling an input Go program, GCatch models the complex channel operations in Go using a novel constraint system and …
引用总数
学术搜索中的文章
Z Liu, S Zhu, B Qin, H Chen, L Song - Proceedings of the 26th ACM International Conference …, 2021