📄 rwlock.c
字号:
#include "u.h"#include "lib.h"#include "dat.h"#include "fns.h"#include "error.h"voidrlock(RWlock *l){ qlock(&l->x); /* wait here for writers and exclusion */ lock(&l->lk); l->readers++; canqlock(&l->k); /* block writers if we are the first reader */ unlock(&l->lk); qunlock(&l->x);}voidrunlock(RWlock *l){ lock(&l->lk); if(--l->readers == 0) /* last reader out allows writers */ qunlock(&l->k); unlock(&l->lk);}voidwlock(RWlock *l){ qlock(&l->x); /* wait here for writers and exclusion */ qlock(&l->k); /* wait here for last reader */}voidwunlock(RWlock *l){ qunlock(&l->k); qunlock(&l->x);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -