补全:lock_guard 活到哪一行
本节的东西:
TABLE 三语言对照:(声明, 拿, 放, 自动放)
count_pairs(src) C 源码里 pthread_mutex_lock / unlock 各几次
find_leak(src) 按行扫 C:拿了锁之后、放锁之前遇到 return 的行号
guard_span(src) C++:lock_guard 声明的那一行到它所在花括号块结束的那一行C++ 片段(CPP_SRC):
int take(int k) {
std::lock_guard<std::mutex> g(m);
if (stock < k) return -1;
stock -= k;
return stock;
}
补全 guard_lines(src):用 guard_span 拿到起止行,交回这段里每一行去掉缩进的文本用 | 连起来(含起止行)。再看 C++ 版的 return -1 那一行是不是在守卫范围里。
全部评论