Commit 4308c19d authored by Geoff Simmons's avatar Geoff Simmons

implement DATA_Clear_tx (no test yet)

parent 37b704fe
...@@ -80,12 +80,30 @@ data_Cleanup(void) ...@@ -80,12 +80,30 @@ data_Cleanup(void)
} }
void void
DATA_Clear_Logline(tx_t *tx) DATA_Clear_Tx(tx_t *tx)
{ {
logline_t *rec;
chunk_t *chunk;
CHECK_OBJ_NOTNULL(tx, TX_MAGIC); CHECK_OBJ_NOTNULL(tx, TX_MAGIC);
tx->state = TX_EMPTY; tx->state = TX_EMPTY;
/* XXX: etc. ... */ tx->vxid = -1;
tx->type = VSL_t_unknown;
VSTAILQ_FOREACH(rec, &tx->lines, linelist) {
CHECK_OBJ_NOTNULL(rec, LOGLINE_MAGIC);
rec->state = DATA_EMPTY;
rec->tag = SLT__Bogus;
rec->len = 0;
VSTAILQ_FOREACH(chunk, &rec->chunks, chunklist) {
CHECK_OBJ_NOTNULL(chunk, CHUNK_MAGIC);
chunk->state = DATA_EMPTY;
*chunk->data = '\0';
}
VSTAILQ_INIT(&rec->chunks);
}
VSTAILQ_INIT(&tx->lines);
} }
int int
...@@ -212,17 +230,6 @@ DATA_Return_Free(tx) ...@@ -212,17 +230,6 @@ DATA_Return_Free(tx)
DATA_Return_Free(line) DATA_Return_Free(line)
DATA_Return_Free(chunk) DATA_Return_Free(chunk)
#define DUMP_HDRS(vsb, ll, hdr) do { \
if (ll->hdr) \
for (j = 0; j < ll->hdr->nrec; j++) \
if (ll->hdr->record[j].len) { \
VSB_putc(vsb, '['); \
VSB_bcat(vsb, ll->hdr->record[j].data, \
ll->hdr->record[j].len); \
VSB_cat(vsb, "] "); \
} \
} while (0)
void void
DATA_Dump(void) DATA_Dump(void)
{ {
......
...@@ -241,7 +241,7 @@ int LOG_Open(const char *progname); ...@@ -241,7 +241,7 @@ int LOG_Open(const char *progname);
/* data.c */ /* data.c */
int DATA_Init(void); int DATA_Init(void);
void DATA_Clear_Logline(tx_t *tx); void DATA_Clear_Tx(tx_t *tx);
unsigned DATA_Take_Freetx(struct txhead_s *dst); unsigned DATA_Take_Freetx(struct txhead_s *dst);
unsigned DATA_Take_Freeline(struct linehead_s *dst); unsigned DATA_Take_Freeline(struct linehead_s *dst);
unsigned DATA_Take_Freechunk(struct chunkhead_s *dst); unsigned DATA_Take_Freechunk(struct chunkhead_s *dst);
......
...@@ -223,7 +223,7 @@ wrt_write(tx_t *tx) ...@@ -223,7 +223,7 @@ wrt_write(tx_t *tx)
MON_StatsUpdate(STATS_WRITTEN); MON_StatsUpdate(STATS_WRITTEN);
/* clean up */ /* clean up */
DATA_Clear_Logline(tx); DATA_Clear_Tx(tx);
VSTAILQ_INSERT_TAIL(&wrt_freelist, tx, freelist); VSTAILQ_INSERT_TAIL(&wrt_freelist, tx, freelist);
wrt_nfree++; wrt_nfree++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment