Reindented server/core/memlog.c
This commit is contained in:
@ -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++)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user