补全:数每个函数的配对
本节的东西:
TABLE 三语言对照:(声明, 拿, 放, 自动放)
count_pairs(src) C 源码里 pthread_mutex_lock / unlock 各几次
find_leak(src) 按行扫 C:拿了锁之后、放锁之前遇到 return 的行号
guard_span(src) C++:lock_guard 声明的那一行到它所在花括号块结束的那一行贯穿 n07 的 C 片段(C_SRC):
int take(int k) {
pthread_mutex_lock(&m);
if (stock < k) return -1;
stock -= k;
pthread_mutex_unlock(&m);
return stock;
}
void put(int k) {
pthread_mutex_lock(&m);
stock += k;
pthread_mutex_unlock(&m);
}
补全 per_func(src):按「行首不缩进且以 { 结尾」认函数开头(函数名是第二个词去掉括号),交回 {函数名: (拿次数, 放次数)},按函数出现顺序拼成 名:拿放。
全部评论