I have run into this issue in my single threaded application where my pcb's
snd_buf never gets cleared out. 
My code will run smoothly for a variable amount of time. Sometimes it will
run for a very long time before snd_buf stops clearing out, and sometimes it
takes a short time for the issue to arise. I know that lwip allows you to
provide a callback to tcp_poll so that you may finish sending the data at a
later time, but I cannot do this in my program or else things will get
extremely backed up and eventually run out of memory, so I instead busy wait
until the snd_buf clears it. The idea is that calling xemacif_input() will
allow the network interface to handle any incoming packets, and I know that
at the end of tcp_input(), tcp_output() gets called which is when the
snd_buf should clear out. This usually works very well, but as stated above,
sometimes that snd_buf just stops clearing out, and my program gets stuck in
an infinite loop waiting for the snd_buf to clear.

I have noticed that this happens much more frequently when I am sending out
on multiple sockets. Any thoughts would be greatly appreciated.







--
View this message in context: 
http://lwip.100.n7.nabble.com/TCP-snd-buf-never-clears-out-tp22087.html
Sent from the lwip-users mailing list archive at Nabble.com.

_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to