[asterisk-dev] ast_frame allocation/free question

Klaus Darilion klaus.mailinglists at pernau.at
Fri Nov 30 01:23:10 CST 2007



Sergio Garcia Murillo schrieb:
> From: Klaus Darilion [mailto:klaus.mailinglists at pernau.at]
>> Sergio Garcia Murillo wrote:
>>> From: "Simon Perreault" <simon.perreault at viagenie.ca>
>>>> Either I'm getting it all wrong, or I have an even bigger problem than I
>>> first
>>>> thought. And my code is largely inspired from Sergio's on
>>> sip.fontventa.com
>>>> so we'd be two. ;)
>>>>
>>> I've changed all my allocations to be static, so I just avoided the issue...
>> Are static buffers thread safe?
> 
> From previous answers I assume that within an application the frame is only 
> acceses while the ast_write is executed. So it would be safe to do something
> like that:
> 
> struct ast_frame *f = (struct ast_frame*)malloc(sizeof(ast_frame));
> ast_write(f);
> free(f)
> 
> In that case that 
> 
> unsigned char aux[sizeof(ast_frame)];
> struct ast_frame *f = (struct ast_frame*)aux;
> ast_write(aux);
> 
> would be equally thread safe.

True, but I thought it is a "static" buffer, like:
static unsigned char aux[sizeof(ast_frame)]; ?

regards
klaus



>  If asterisk would like to make anything weird with the frame (like some kind of
> jitter buffering or delay sending) it should duplicate the whole frame and take
> care of the clone.
> 
> Best regards
> Sergio
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev



More information about the asterisk-dev mailing list