首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >read_un/lock(&tasklist_lock)的意义

read_un/lock(&tasklist_lock)的意义
EN

Stack Overflow用户
提问于 2012-04-05 08:41:04
回答 1查看 692关注 0票数 1

在执行等待系统调用的路径时,注意到在调用do_wait_thread之前,我们得到了tasklist_lock。我正在尝试理解tasklist_lock的意义&在哪里使用它是合适的。

代码语言:javascript
复制
716        read_lock(&tasklist_lock);
1717        tsk = current;
1718        do {
1719                retval = do_wait_thread(wo, tsk);
1720                if (retval)
1721                        goto end;
1722
1723                retval = ptrace_do_wait(wo, tsk);
1724                if (retval)
1725                        goto end;
1726
1727                if (wo->wo_flags & __WNOTHREAD)
1728                        break;
1729        } while_each_thread(current, tsk);
1730        read_unlock(&tasklist_lock);

我看了tasklist_lock的声明,如下所示。

代码语言:javascript
复制
/*
 251 * This serializes "schedule()" and also protects
 252 * the run-queue from deletions/modifications (but
 253 * _adding_ to the beginning of the run-queue has
 254 * a separate lock).
 255 */
 256 extern rwlock_t tasklist_lock;
 257 extern spinlock_t mmlist_lock;

我不能理解我们应该在哪里使用它。你能告诉我这件事吗?感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 10:33:00

循环遍历当前任务的每个线程。持有tasklist锁可以确保在循环运行时这些线程都不会消失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10021240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档