Re: TLV to memPools

From: Andres Kroonmaa <andre@dont-contact.us>
Date: Mon, 8 Oct 2001 18:20:30 +0200

On 8 Oct 2001, at 17:55, Henrik Nordstrom <hno@marasystems.com> wrote:

> To answer your question: To make sure the the caller knows what he/she
> is freeing. The size field sent to memFreeBuf is the same field as
> returned via gross_size in memAllocBuf.

 ok, so correct way would be to add TLV a field of gross_size as returned
 by memAllocBuf.

 I've been thinking that it'd be handy to have anonymous Pool for variable
 sized allocs. Thought memAllocBuf would do it in this case.

> A related questions is:
>
> Why do we have 2 different and incompatible buffer implementations?
>
> MemBuf
> String

 I thought to make distinction between data buffers and strings.
 It seems that thats not the case anymore.

> The two provide basically the same functionality with only some minor
> twists. The main difference is the buffer sizes.
>
> String uses the memBufAlloc/Free API to manage 36 bytes, 128 bytes,
> 512 bytes and xmallocs anything larger.
>
> MemBuf manages 2K, 4K, 8K, 16K, 32K, 64K buffers using the MEM_xK_BUF
> mempools, and xmallocs anything larger.
>
> I have a feeling that the use of these two is not entirely consistent.
>
> Regards
> Henrik
>
>
> Andres Kroonmaa wrote:
>
> > ok,
> >
> > Any good reason why we insist on size to be exactly size of
> > pool's obj_size?
> >
> > /* free buffer allocated with memAllocBuf() */
> > void
> > memFreeBuf(size_t size, void *buf)
> > {
> > int i;
> > MemPool *pool = NULL;
> > assert(size && buf);
> > for (i = 0; i < mem_str_pool_count; i++) {
> > if (size <= StrPoolsAttrs[i].obj_size) {
> > >>> assert(size == StrPoolsAttrs[i].obj_size);
> > pool = StrPools[i].pool;
> > break;
> > }
> > }
> > memMeterDec(StrCountMeter);
> > memMeterDel(StrVolumeMeter, size);
> > pool ? memPoolFree(pool, buf) : xfree(buf);
> > }
> >
> > ------- End of forwarded message -------
> >
> > ------------------------------------
> > Andres Kroonmaa <andre@online.ee>
> > CTO, Microlink Online
> > Tel: 6501 731, Fax: 6501 725
> > Pärnu mnt. 158, Tallinn,
> > 11317 Estonia

------------------------------------
 Andres Kroonmaa <andre@online.ee>
 CTO, Microlink Online
 Tel: 6501 731, Fax: 6501 725
 Pärnu mnt. 158, Tallinn,
 11317 Estonia
Received on Mon Oct 08 2001 - 10:27:38 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:26 MST