From dd7f1e67d37aaed8ff2052b76d90a7afca995c5d Mon Sep 17 00:00:00 2001 From: Steven Dake Date: Mon, 12 Jul 2004 03:49:04 +0000 Subject: [PATCH] Changeset 1.22 introduced problem with managing messages in the sort queue. The result was memory leakage. (Logical change 1.31) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@97 fd59a12c-fef9-0310-b244-a6a79926bd2f --- include/sq.h | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/include/sq.h b/include/sq.h index 7cf6f507..9935b6b1 100644 --- a/include/sq.h +++ b/include/sq.h @@ -150,35 +150,23 @@ assert (sq_position >= 0); static inline void sq_items_release (struct sq *sq, int seqid) { int oldhead; - char *sq_item; if (seqid < sq->head_seqid) { -//printf ("%d %d\n", seqid, sq->head_seqid); return; } -//printf ("releasing %d\n", seqid); oldhead = sq->head; -//printf ("before sq->head %d\n", sq->head); sq->head = (sq->head + seqid - sq->head_seqid + 1) % sq->size; -//printf ("after sq->head %d\n", sq->head); if ((oldhead + seqid - sq->head_seqid + 1) > sq->size) { -//printf ("memset 1\n"); -//printf ("%d %d %d %d\n", seqid, sq->head_seqid, sq->head, sq->size); -assert ((sq->size - oldhead) > 0); + //printf ("releasing %d for %d\n", oldhead, sq->size - oldhead); + //printf ("releasing %d for %d\n", 0, sq->head); memset (&sq->items_inuse[oldhead], 0, sq->size - oldhead); memset (sq->items_inuse, 0, sq->head * sizeof (char)); -//printf ("SIZEOF %d %d\n", sq->head, sq->head * sizeof (char)); -// memset (sq->items, 0, (sq->head) * (sq->size_per_item)); } else { -assert (seqid - sq->head_seqid + 1); -//printf ("memset 2\n"); -//printf ("releasing %d for %d\n", oldhead, seqid - sq->head_seqid + 1); - memset (&sq->items_inuse[oldhead], 0, (seqid - sq->head_seqid + 2) * sizeof (char)); - sq_item = sq->items; - sq_item += oldhead * sq->size_per_item; -// memset (sq_item[oldhead], 0, (seqid - sq->head_seqid + 1) * (sq->size_per_item)); + //printf ("releasing %d for %d\n", oldhead, seqid - sq->head_seqid + 1); + memset (&sq->items_inuse[oldhead], 0, + (seqid - sq->head_seqid + 1) * sizeof (char)); } sq->head_seqid = seqid + 1; }