我的应用程序前端和后端分别在java和c上。接口是通过C端的侦听器进程。如果c侧存在错误,则为用户提供服务的相应侦听器进程需要关闭。
但是听众并没有在其中一个案件中失败过。我已经绞尽脑汁,但我似乎无法破解它。
当我聆听听众服务时,这就是我注意到的。
15269900: 57278597: 0.0002: _getpid() = 15269900
15269900: 57278597: 0.0009: _esend(11, 0x090000000B3B6F72, 1, 1, 0x0000000000000000) = 1
15269900: 57278597: kwrite(11, "\0\v\0\0\f\0\0\001\002", 11) = 11
15269900: 57278597: kread(11, "\0\v\0\0\f\0\0\001\001\0".., 8208) = 22
15269900: 57278597: 1.0974: kread(11, "\0\v\0\0\f\0\0\001\002\0".., 8208) (sleeping...)
15269900: 57278597: 4.5260: kread(11, "\0\v\0\0\f\0\0\001\002\0".., 8208) (sleeping...)
它等在这里。
此pid上的procstack显示如下
0x0000000000000000 ????????() + ??
procstack: write(/proc/15269900/ctl): The requested resource is busy.
我做了我的研究,但我仍然无法弄清楚这一点。有人可以帮助我为什么这个过程被挂在这里?