Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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中与本机网络相关的函数随机阻塞_Android_C_Native - Fatal编程技术网

android中与本机网络相关的函数随机阻塞

android中与本机网络相关的函数随机阻塞,android,c,native,Android,C,Native,我有一个用C编写的库,我正在使用Android应用程序。我发现应用程序有时在执行各种功能时会阻塞(常见的是它们都与网络有关) 我正在运行安卓6的真实安卓设备上进行测试。 该库使用NDK版本21编译 到目前为止,我在3个函数中观察到了这种行为-getaddrinfo、poll和socket: memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.

我有一个用C编写的库,我正在使用Android应用程序。我发现应用程序有时在执行各种功能时会阻塞(常见的是它们都与网络有关)

我正在运行安卓6的真实安卓设备上进行测试。 该库使用NDK版本21编译

到目前为止,我在3个函数中观察到了这种行为-
getaddrinfo
poll
socket

memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
getaddrinfo(hostname, port, &hints, &result);

////

struct pollfd wait = {
    .fd = fd,
    .events = event,
    .revents = 0
};
status = poll(&wait, 1, 10000);

////

fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol);
这些函数在程序开始运行后会被调用数次。同一个呼叫可以一次正常工作,下次无限期(至少几分钟)阻塞。设备上的互联网连接似乎正常


有什么想法吗?我怎么能调试这样一个问题呢?

我实际上没有找到问题的原因,但我找到了解决问题的方法。部分代码是由其他人编写的,我不确定它到底在做什么。重写这部分后,一切都开始正常工作

除此之外,该代码使用
fork()
生成了一个新进程。我怀疑问题与此有关