我想从项目存储库中删除我的最后一次提交。但是当我运行 'git reset --soft HEAD^ ' 或 'git reset --hard HEAD^' 时,
它显示“致命:不明确的参数“HEAD〜”:未知修订版或路径不在工作树中。使用“--”将路径与修订版分开,如下所示:“git [...] -- [...]”
有什么问题?
我正在编写Leslie Lamport 的 Bakery 算法的 Go 实现,该算法具有 busy-spin-waits 来处理一些最大数量的线程。
我正在编写一个 go 函数,除非满足特殊条件,否则该函数不应继续。到目前为止,我的代码如下所示:
func acquireLock() {
...
for specialConditionIsFalse {
}
...
}
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法来停止处理这个线程?
我需要测试一个进程是否终止,我所拥有的只是它的 pid 号。为此,我测试伪文件“/proc/<pid>”是否存在。
为这个函数编写一个测试,我注意到这个过程没有按预期终止。
对于测试,我将“sleep 10”作为子进程运行,它应该运行 10 秒。开始这个过程后,我轮询伪文件“/proc/<pid>”是否消失。该伪文件永远不会消失,也不会检测到子进程的终止。
测试golang playground的代码,重现问题:https : //play.golang.org/p/fb4CbXkIjh3。
我检查了该进程是否已创建,并且 pid 是否正确。在检查过程中看到它变成了<defunct>。它没有因此被删除。
问题如下:
package main
import (
"fmt"
"log"
"os"
"os/exec"
"strconv"
"time"
)
func main() {
fmt.Println("Hello, playground")
cmd := exec.Command("sleep", "10")
if err := cmd.Start(); err != nil {
log.Fatal("unexpected error:", err)
}
pidStr := strconv.Itoa(cmd.Process.Pid)
log.Println("sleep pid:", pidStr)
for {
if _, err := os.Stat("/proc/" + pidStr); os.IsNotExist(err) {
log.Println("detect termination of /proc/" + pidStr)
return
}
log.Println("pgm /proc/" + …Run Code Online (Sandbox Code Playgroud) 我想要的结果如下\xef\xbc\x8c,但Rust的结果是另一个。
\n [123 34 66 111 100 121 34 58 34 97 71 86 115 98 71 56 61 34 125]\nRun Code Online (Sandbox Code Playgroud)\n戈兰样本:
\ntype Response struct {\n Body []byte\n}\nfunc Test_Marshal(t *testing.T) {\n body := "hello"\n resp := &Response{\n Body:[]byte(body),\n }\n t.Log("resp:", resp)\n result, _ := json.Marshal(resp)\n t.Log("result: ", result)\n}\nRun Code Online (Sandbox Code Playgroud)\n去结果:
\n aa_test.go:17: resp: &{[104 101 108 108 111]}\n aa_test.go:19: result: [123 34 66 111 100 121 34 58 34 97 71 86 115 98 71 56 61 34 …Run Code Online (Sandbox Code Playgroud)