Android NDK sem_wait报告100%cpu使用

时间:2017-11-01 12:42:30

标签: android android-ndk semaphore cpu-usage

android Profiler将我的一个本机线程显示为使用100%cpu,但这个线程只调用未发出信号的信号量上的sem_wait

int rc;
do {
    rc = sem_wait(&m_sema);
} while (rc == -1 && errno == EINTR);

我在while条件中添加了一个断点,并在sem_wait之后添加了日志记录,并且可以确认对sem_wait的调用永远不会返回。

这是针对调试版本的虚假CPU使用情况,还是这个调用实际上是在设备上使用CPU周期?

此信号量是MoodyCamel' C++11 SPSC Blocking Queue的一部分,否则似乎没有任何问题。

0 个答案:

没有答案