c - 为什么我不能在调用 wait_for_completion_timeout() 方法之前对完成变量调用 complete() 方法
问题描述
我试图了解完成变量类型,通常用于 Linux 内核(Linux 版本 4.9.98-06769-gaf81aea-dirty)。
问题:如果我在调用 wait 方法之前对完成变量调用 complete() 方法,它会使内核崩溃。
我在互联网上搜索,但无法得到满意的原因。有人,请帮助我理解这种行为。
先感谢您!
例如
int timeout = 100; //100 ms timeout
unsigned long tempJ = msecs_to_jiffies(timeout);
struct completion sema;
init_completion(&sema);
//wait_for_completion_timeout(&sema, tempJ)
complete(&sema)
解决方案
推荐阅读
- python - 在脚本中保存对象
- wordpress - 如何在 WordPress 中阻止自定义帖子类型列表页面?
- android - 当我们在浏览器中搜索链接时,我们如何重定向到我们的 react-native 应用程序
- javascript - javascript setTimeout 函数,有问题吗
- android - 使用一个启动器分屏启动我的两个应用程序 - Android
- c# - 如何增加 ASP .NET Core 3.0 应用程序中的最大线程数
- python - python使用urllib2和urllib获取请求问题
- c++ - 我创建了一个库,想知道设计是否效率低下
- javascript - 如何在按钮点击反应中添加延迟?
- python - 如何在python中根据索引绘制图形