小编jmw*_*ght的帖子

如何检测Ruby线程何时从线程中被杀死

如果我使用以下代码启动了一个线程,如何从线程本身中捕获/检测退出调用,以便在终止之前进行一些清理?

thr = Thread.new { sleep }
thr.status # => "sleep"
thr.exit
thr.status # => false
Run Code Online (Sandbox Code Playgroud)

我在想,也许它会像下面这样,但我不确定.

thr = Thread.new {
    begin
        sleep
    rescue StandardError => ex
        puts ex.message
    rescue SystemExit, Interrupt
        puts 'quit'
    ensure
        puts 'quit'
    end
}
thr.status # => "sleep"
thr.exit #=> "quit"
thr.status # => false
Run Code Online (Sandbox Code Playgroud)

ruby multithreading

5
推荐指数
1
解决办法
589
查看次数

如何用git2-rs Rust箱子完成"git pull"?

我正在使用git2-rs在Rust应用程序中实现一些标准的git功能.我一直在阅读git内部,并了解在高级别"git pull"是一个"git fetch",然后是"git merge",但我仍然无法理解如何使它与git2-rs一起工作.有对一个问题的讨论在这里在那里的同意,GIT2-RS"混帐拉"的例子将是很好的,但一个是从未创建.有一个在该讨论中进行硬重置的示例,但我想避免覆盖本地更改(因此合并).我一直无法在使用git2-rs的任何其他代码库中找到示例.

该"混帐复位"的例子在这里展示了如何获得一个OID后,取指,我认为,但合并功能需要一个AnnotatedCommit,我不知道如何在两者之间转换,或者即使是走在正确的方向.

git pull rust libgit2

5
推荐指数
1
解决办法
357
查看次数

标签 统计

git ×1

libgit2 ×1

multithreading ×1

pull ×1

ruby ×1

rust ×1