lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Problems freeing a packet buffer using pbuf_free


From: Kieran Mansley
Subject: Re: [lwip-users] Problems freeing a packet buffer using pbuf_free
Date: Tue, 19 Jun 2012 20:36:20 +0100

On 18 Jun 2012, at 15:31, Justin Drake wrote:

> I am a function to send data packets. Each time a packet is receive, I create 
> a buffer using `pbuf_alloc`. I then send the packet using `upd_sendto`. 
> Finally, I free the buffer with `pbuf_free`.
> 
> For some reason, `pbuf_free` is not freeing the buffers. (I get a buffer 
> overflow after `n` packets, where `n` is the pool size.)
> 
> How can I have `pbuf_free` actually free my buffers? How is the buffer 
> overflow avoided?

pbufs are reference counted, so that many code paths can say "I'm using this, 
don't free it yet" and it is not until they all call  pbuf_free that is 
actually deallocated.  I would look into that.  My first guess is that lwIP or 
the driver was taking a reference to prevent it being freed if it couldn't 
immediately be sent on the wire, but I can't see that in the code for UDP.

Kieran


reply via email to

[Prev in Thread] Current Thread [Next in Thread]