我想构建一个简单的工具来检查SVN版本号的更改(=某人已提交),但我遇到了一个非常奇怪的问题。 当我编译并运行我的代码时,将打印以下第一条消息,而下一条消息不会:
while (true) {
var msg = new Soup.Message("GET", this.repo.URL);
session.send_message(msg);
MatchInfo matchInfo;
pattern.match((string)msg.response_body.data, 0, out matchInfo);
var revisionString = matchInfo.fetch_named("revision");
stdout.printf("Current Revision: [%s]\n", revisionString);
var currentRevision = int.parse("383");
stdout.printf("Current Revision parsed %d", currentRevision);
Thread.usleep(150000000);
}
我插入了硬编码字符串"383"
仅用于测试,但仍然失败。
我也看不出printf的任何问题,也没有编译器错误
如果它有用,我可以发布更多代码。
答案 0 :(得分:1)
int.parse
只需致电atoi
。您可以通过查看生成的C来验证这一点。
atoi
不是线程安全的,我假设你因为Thread.usleep
而在多个线程中运行它。
改为使用int64.try_parse
,它基于strtoll
。
另外,尝试一个不涉及this.repo.LastRevision
的更小的测试用例。