/* If total number of pbufs on the unsent/unacked queues exceeds the * configured maximum, return an error */
queuelen = pcb->snd_queuelen; /* check for configured max queuelen and possible overflow */ if ((queuelen >= TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue: too long queue %"U16_F" (max %"U16_F")\n", queuelen, TCP_SND_QUEUELEN));
TCP_STATS_INC(tcp.memerr); pcb->flags |= TF_NAGLEMEMERR; return ERR_MEM; }
my code loop forever, in this piece of code, with queuelen = TCP_SND_QUEUELEN, without send any packet, incremeting err in tcp.memerr
i cannot recovery this situation? my thread is blocked on send operation i suppose....