首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sem_timedwait与Android

sem_timedwait与Android
EN

Stack Overflow用户
提问于 2014-09-17 07:33:43
回答 1查看 775关注 0票数 0

在调查过程中,我发现了NDK中信号原语实现中的几个空白。我当前的任务需要sem_timedwait (就像带有超时的sem_wait ),但是在NDK中找不到它。更重要的是:代码在iOS平台上应该是可移植的。

我目前的建议:

步骤1:用sem_wait创建单独的线程(thrd_id1) (等待sem_post,可以永远停留在那里)

步骤2:创建单独的线程(thrd_id2),以秒为单位,当我们醒来时

步骤3:当我们醒来时(thrd_id2)尝试用sem_wait (thrd_id1)取消线程,如果成功返回ETIMEOUT,否则由sem_post从另一个线程解锁sem_wait。但是,p线程的NDK实现没有可取消的线程。

对pthread_kill有另一个想法,但我怎么知道它是正常被杀死或终止的呢?

请给我建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 07:49:20

sem_timedwait存在于Android中,至少来自于r9d版本(我没有早期版本)--检查platforms/android-%yourplatform%/arch-%yourarch%/usr/include/semaphore.h

如果切换到较新的NDK不是一种选择,我建议您使用以GNU实现为例

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

https://stackoverflow.com/questions/25884824

复制
相关文章

相似问题

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