Provide a method to release the message cache.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
889c707ba1
commit
577d34facf
1
clock.c
1
clock.c
|
@ -99,6 +99,7 @@ static void clock_destroy(struct clock *c)
|
|||
servo_destroy(c->servo);
|
||||
mave_destroy(c->avg_delay);
|
||||
memset(c, 0, sizeof(*c));
|
||||
msg_cleanup();
|
||||
}
|
||||
|
||||
static int clock_fault_timeout(struct clock *c, int index, int set)
|
||||
|
|
12
msg.c
12
msg.c
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#include "contain.h"
|
||||
#include "msg.h"
|
||||
#include "print.h"
|
||||
#include "tlv.h"
|
||||
|
@ -230,6 +231,17 @@ struct ptp_message *msg_allocate(void)
|
|||
return m;
|
||||
}
|
||||
|
||||
void msg_cleanup(void)
|
||||
{
|
||||
struct message_storage *s;
|
||||
struct ptp_message *m;
|
||||
while ((m = TAILQ_FIRST(&msg_pool)) != NULL) {
|
||||
TAILQ_REMOVE(&msg_pool, m, list);
|
||||
s = container_of(m, struct message_storage, msg);
|
||||
free(s);
|
||||
}
|
||||
}
|
||||
|
||||
void msg_get(struct ptp_message *m)
|
||||
{
|
||||
m->refcnt++;
|
||||
|
|
5
msg.h
5
msg.h
|
@ -260,6 +260,11 @@ static inline int msg_type(struct ptp_message *m)
|
|||
*/
|
||||
struct ptp_message *msg_allocate(void);
|
||||
|
||||
/**
|
||||
* Release all of the memory in the message cache.
|
||||
*/
|
||||
void msg_cleanup(void);
|
||||
|
||||
/**
|
||||
* Obtain a reference to a message, increasing its reference count by one.
|
||||
* @param m A message obtained using @ref msg_allocate().
|
||||
|
|
Loading…
Reference in New Issue