По чему виснет сетевое приложение под Android на GOLANG?
Всем привет! У меня есть интересный вопрос для матерых разработчиков на Android
У меня появилось желание реализовать простой анализатор трафика для андройда на основе socks5proxy.
Я JAVA к сожалению не знаю, зато знаю немного GO по этому саму реализацию socks5 написал на чистом GO.
Я тестировал полученный сервис на Linux и на Windows все работало нормально.
При помощи gomobile я скомпилировал библиотеку и подключил ее к android studio. Повесил запуск сервиса на кнопку (вызов всего одной функци из go ничего более).
Все работает какое-то время нормально, но потом чето уж совсем странное происходит:
1. Сервис перестает откликатся по сети.
2. Само приложение не падает кнопка нажимается
3. В logcat никаких новых сообщений не появляется и само окно logcat виснет вместе с andoid-studio. Ничего не нажимается до тех пор пока не прибьешь эмулятор. После того как прибил эмулятор появляется ошибка "error: EOF", но среда отвисает и раб потом нормально
4. Иногда сам эмулятор сам падает с такой ошибкой.
PANIC: .//android/sockets.c:1002:socket_recvfrom: System call looped around EINTR 100 times: recvfrom(fd,buf,len,0,sa.sa,&salen)
Что это может быть такое?
Сюда по всему это баг именно эмулятора x86, по тому что версия эмулирующая ARM работает нормально без подобного бага, так же на реальном железе тоже это баг отсутвует.