Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ndk ALooper\u pollAll何时返回ALooper\u POLL\u超时?_Android Ndk_Android Looper - Fatal编程技术网

Android ndk ALooper\u pollAll何时返回ALooper\u POLL\u超时?

Android ndk ALooper\u pollAll何时返回ALooper\u POLL\u超时?,android-ndk,android-looper,Android Ndk,Android Looper,让我们假设,将两个具有相应回调的文件描述符添加到循环器中,然后调用ALooper_pollAll(),超时时间为1000毫秒。不久之后,一些文件描述符变得可用,循环器开始对它们调用回调。假设上次调用的回调是在ALooper_pollAll启动后200毫秒的ellapsed之后完成的。现在,如果两个描述符上都没有更多的数据,那么函数什么时候返回操作轮询超时?是在800ms(回调完成后剩余的超时时间)之后,还是在1000ms(初始超时时间)之后?查看后,很明显这是前者。在内部,ALooper\U p

让我们假设,将两个具有相应回调的文件描述符添加到循环器中,然后调用ALooper_pollAll(),超时时间为1000毫秒。不久之后,一些文件描述符变得可用,循环器开始对它们调用回调。假设上次调用的回调是在ALooper_pollAll启动后200毫秒的ellapsed之后完成的。现在,如果两个描述符上都没有更多的数据,那么函数什么时候返回操作轮询超时?是在800ms(回调完成后剩余的超时时间)之后,还是在1000ms(初始超时时间)之后?

查看后,很明显这是前者。在内部,ALooper\U pollAll在循环中调用ALooper\U pollOnce,更新(减少)每次后续调用后的超时时间,因此最终当它变为0时,返回ALooper\U POLL\U timeout