
看来pthread_sigmask在Android上不起作用.该问题似乎早在2年前就已经报告过here,但是开发人员没有任何回应.我遇到了一个非常类似的问题(下面的代码仅供参考).我是在做错什么,还是AndroID NDK有问题?还有关于如何使用两个线程来处理限于一个线程的特定信号的任何提示/帮助?
我正在AndroID 2.2上运行此代码.
// block the signal in this threadsigset_t signals;sigemptyset(&signals);sigaddset(&signals, SIgalRM);int ret = pthread_sigmask(SIG_BLOCK, &signals, NulL);if (ret) { LOG("pthread_sigmask Failed. %d", ret);}我收到错误22(EINVAL).我也收到SIG_UNBLOCK的相同错误.
更新:看起来它可以在4.1设备上使用.我试过4.1,看来成功了.它还在2.3和4.0设备上失败.
关于如何确保特定信号的信号处理程序仅在一个线程上运行的任何提示?在此先感谢您的帮助.
解决方法:
看来实现已在此处修复:
https://android.googlesource.com/platform/bionic/+/9bf330b5676d0f60b3e4c3b8985494bcb1134e8b
您可能可以改用sigprocmask(),尽管该行为尚未正式为多线程进程定义.
总结以上是内存溢出为你收集整理的Android上的pthread_sigmask无法正常工作?全部内容,希望文章能够帮你解决Android上的pthread_sigmask无法正常工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)