Reindented server/core/memlog.c

This commit is contained in:
Johan Wikman
2015-11-30 14:15:15 +02:00
parent 60fb05ea40
commit 72dd159f98
2 changed files with 196 additions and 180 deletions

View File

@ -100,20 +100,28 @@ memlog_destroy(MEMLOG *log)
MEMLOG *ptr; MEMLOG *ptr;
if ((log->flags & MLNOAUTOFLUSH) == 0) if ((log->flags & MLNOAUTOFLUSH) == 0)
{
memlog_flush(log); memlog_flush(log);
}
free(log->values); free(log->values);
spinlock_acquire(&memlock); spinlock_acquire(&memlock);
if (memlogs == log) if (memlogs == log)
{
memlogs = log->next; memlogs = log->next;
}
else else
{ {
ptr = memlogs; ptr = memlogs;
while (ptr && ptr->next != log) while (ptr && ptr->next != log)
{
ptr = ptr->next; ptr = ptr->next;
}
if (ptr) if (ptr)
{
ptr->next = log->next; ptr->next = log->next;
} }
}
spinlock_release(&memlock); spinlock_release(&memlock);
free(log->name); free(log->name);
free(log); free(log);
@ -129,7 +137,9 @@ void
memlog_log(MEMLOG *log, void *value) memlog_log(MEMLOG *log, void *value)
{ {
if (!log) if (!log)
{
return; return;
}
spinlock_acquire(&log->lock); spinlock_acquire(&log->lock);
switch (log->type) switch (log->type)
{ {
@ -150,7 +160,9 @@ memlog_log(MEMLOG *log, void *value)
if (log->offset == log->size) if (log->offset == log->size)
{ {
if ((log->flags & MLNOAUTOFLUSH) == 0) if ((log->flags & MLNOAUTOFLUSH) == 0)
{
memlog_flush(log); memlog_flush(log);
}
log->offset = 0; log->offset = 0;
log->iflags = MLWRAPPED; log->iflags = MLWRAPPED;
} }
@ -204,7 +216,9 @@ FILE *fp;
int i; int i;
if ((fp = fopen(log->name, "a")) == NULL) if ((fp = fopen(log->name, "a")) == NULL)
{
return; return;
}
if ((log->flags & MLNOAUTOFLUSH) && (log->iflags & MLWRAPPED)) if ((log->flags & MLNOAUTOFLUSH) && (log->iflags & MLWRAPPED))
{ {
for (i = 0; i < log->size; i++) for (i = 0; i < log->size; i++)

View File

@ -33,7 +33,8 @@
typedef enum { ML_INT, ML_LONG, ML_LONGLONG, ML_STRING } MEMLOGTYPE; typedef enum { ML_INT, ML_LONG, ML_LONGLONG, ML_STRING } MEMLOGTYPE;
typedef struct memlog { typedef struct memlog
{
char *name; char *name;
SPINLOCK lock; SPINLOCK lock;
void *values; void *values;
@ -62,4 +63,5 @@ extern void memlog_set(MEMLOG *, unsigned int);
extern void memlog_log(MEMLOG *, void *); extern void memlog_log(MEMLOG *, void *);
extern void memlog_flush_all(); extern void memlog_flush_all();
extern void memlog_flush(MEMLOG *); extern void memlog_flush(MEMLOG *);
#endif #endif