Hello,
while working with NDK 1.94 on C64+ platform I've stumbled upon problem - I think - related to this library.
My test device is using DHCP and joins multicast group (IP_ADD_MEMBERSHIP) on startup. When address from DHCP changes (either router was changed or IP assignment on same router after lease timeout) I want to shut down part of application and relaunch it. Unfortunately when I'm trying to close socket that previously joined multicast group some task at priority 9 (I believe one of NDK tasks) hangs up consuming all CPU time indefinitely and starving all lower priority tasks.
This happens only with multicast-enabled socket. If I drop multicast membership before network removed/network added events occur than everything works fine. Task halts when socket is closed or when IP_DROP_MEMBERSHIP option is set after DHCP renew. It happens even if delay between DHCP renew and and socket closing is long and in my test even if renewed address is the same as previous (although I don't want normally to reopen/rebind socket in this case).
I would be glad if someone could confirm problem or send any suggestions.
Edit: after next few tries I'm not sure if this can happen when renewed address is the same as previous, but changing router seems to be reliable method to get this effect. Task at priority 9 seems to be NDK kernel in my configuration (default NDK priorities). Halting of this task may be just random effect - at the same time I'm observing using TSK_stat strange (either 100% or some seemingly random, out of range number) stack usage of two other tasks that are using NDK - that may suggest some incorrect memory access.