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);
|
servo_destroy(c->servo);
|
||||||
mave_destroy(c->avg_delay);
|
mave_destroy(c->avg_delay);
|
||||||
memset(c, 0, sizeof(*c));
|
memset(c, 0, sizeof(*c));
|
||||||
|
msg_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int clock_fault_timeout(struct clock *c, int index, int set)
|
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 <asm/byteorder.h>
|
||||||
|
|
||||||
|
#include "contain.h"
|
||||||
#include "msg.h"
|
#include "msg.h"
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "tlv.h"
|
#include "tlv.h"
|
||||||
|
@ -230,6 +231,17 @@ struct ptp_message *msg_allocate(void)
|
||||||
return m;
|
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)
|
void msg_get(struct ptp_message *m)
|
||||||
{
|
{
|
||||||
m->refcnt++;
|
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);
|
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.
|
* Obtain a reference to a message, increasing its reference count by one.
|
||||||
* @param m A message obtained using @ref msg_allocate().
|
* @param m A message obtained using @ref msg_allocate().
|
||||||
|
|
Loading…
Reference in New Issue