- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在单步执行我们的可执行文件链接到的第三方库中的一些代码,特别是“关闭”代码。我正在向我们的应用程序发送 SIGQUIT,这将关闭第三方对象。
出于某种原因,该库对 pthread_mutex_destroy 的可靠调用失败并返回 16:EBUSY。文档说,当“实现检测到试图销毁互斥锁引用的对象时,它被另一个线程锁定或引用(例如,在 pthread_cond_timedwait() 或 pthread_cond_wait() 中使用时)。”
我在调用 pthread_mutex_destroy() 的地方放置了一个断点。
a) 我不相信它被锁定了,因为互斥体的状态看起来像这样:$6 = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 4294967293, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' "\375,\377\377\377", '\000' , __align = 0}
我的猜测是 __lock = 0 表示“解锁”。但是,我不知道 __nusers 真正代表什么。
b) 我没有看到 pthread_cond_wait() 或 pthread_cond_timedwait() 的任何证据。我得到了所有正在运行的线程的回溯,没有人在等待这个互斥量。
这里可能发生了什么?
最佳答案
显然,您的问题出在 __nusers
成员身上。我想,您在某处解锁了已经解锁的互斥量。
关于c++ - pthread_mutex_destroy : why is it returning EBUSY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750213/
所以,我在这行代码中遇到了错误; else if(lockError == EBUSY) 我得到了错误; use of undeclared identifier 'EBUSY' 如何将我的 int
我正在单步执行我们的可执行文件链接到的第三方库中的一些代码,特别是“关闭”代码。我正在向我们的应用程序发送 SIGQUIT,这将关闭第三方对象。 出于某种原因,该库对 pthread_mutex_de
在退出之前,我按以下顺序从 main() 调用: pthread_cancel() 其他线程使用正在“等待”的 mtx(他们正在等待其他 cond_variable 和 mutex。也许这就是问题所在
我有一个非常简单的 Gulpfile: var gulp = require('gulp'), prefix = require('gulp-autoprefixer'), gsass
这是我的问题。我目前正在更新 arm 嵌入式 Linux 机器的内核,从 4.1 到 4.14.73。 我遇到了驱动程序方面的问题。对于内核 4.1,在使用 request_irq 注册 irq 之前
strerror() 函数返回简短的错误描述,将错误编号作为参数。例如,如果参数为ENOTDIR,则返回“Not a directory”,如果参数为EBUSY,则返回“Device or resou
在我所有的搜索尝试中,我只能找到试图修复“EBUSY:资源繁忙或锁定”错误的人。 我想要的是有意地(暂时)将文件置于此状态。如何做到这一点? 我尝试使用来自 NodeJS 的 fs.open、fs.c
有时当我尝试启动 angular-cli 命令时: ng build --app myApplication -w 我收到以下错误: EBUSY: resource busy or locked, u
我正在尝试将行追加到nodejs 中的文件中。我写了下面一段代码。 /* Name : test.js */ /* globals require,__dirname */ var fs = req
我的应用中有一个奇怪的错误。 在我的应用程序中,可以下载一个 zipFile,按原样读取内容并删除它。它到底是什么并不重要。 问题:只有在摩托罗拉 Xoom(4.0.4 版)上我可以下载文件,解压缩,
我的应用程序遇到了这个问题,所以我有一个 stage 文件夹,我们在其中接收文件,目录上有一个 fs.watch,它将监视文件并将文件移动到另一个目录,一旦它看到它。只是为了模仿这个过程,我让应用程序
我正在运行 windows7 并且刚刚安装了以下... c:\design_centre_dev\workspace>node -v v5.10.1 c:\design_centre_dev\work
尝试运行 Nodejs 应用程序来测试 Raspberry 3 B + Gpio Onoff 模块,但是当我尝试运行该应用程序时出现此错误 fs.js:114 throw err; Error: EB
刚刚使用 pip install -U pytest 安装了 py.test 没有错误,但是我们在尝试启动 py.test 时出现错误: EBUSY: [资源设备]: listdir('C:\\Use
在Windows中执行以下步骤后,将发生错误: 打开一个终端:npm run start:dev 打开另一个终端:ng build --watch 但是,通过使用以上命令,它可以在Mac中工作。 pa
我花了几个小时试图自己解决这个问题,同时寻找类似的问题,但没有任何运气,所以我得出的结论是,唯一要做的就是在这里发布一个问题。 我正在开发一个 Web 应用程序的后端,我在其中使用 MongoDB 进
请告诉我是否有任何 sdk,我可以通过它从 c 或 cpp 通信 Oracle eBusiness 套件。我知道 OCCI 用于与 Oracle DB 交互,我正在寻找一种与 Oracle 电子商务套
我正在为 IRQ 号 8 开发一个驱动程序,它对应于 RTC 时钟。我有以下问题。当我用 request_irq 请求那个 IRQ 时,我得到一个 EBUSY 错误。我认为首先使用 free_irq(
我是 Node.js 的新手,我想弄清楚以下代码有什么问题。 var fs = require('fs'); var dir = "C:\\"; var files = fs.readdirSync(
我正在尝试编写一些基本的内核模块——使用 netlink 套接字(用户端的 libnl)的用户空间程序通信。用户空间程序向内核发送消息并期待回复。不幸的是,接收回复失败,返回值 -16 (EBUSY)
我是一名优秀的程序员,十分优秀!