Test(logqueue, log_queue_fifo_rewind_all_and_memory_usage) { LogQueue *q = log_queue_fifo_new(OVERFLOW_SIZE, NULL); log_queue_set_use_backlog(q, TRUE); StatsClusterKey sc_key; stats_lock(); stats_cluster_logpipe_key_set(&sc_key, SCS_DESTINATION, q->persist_name, NULL ); stats_register_counter(1, &sc_key, SC_TYPE_MEMORY_USAGE, &q->memory_usage); stats_unlock(); feed_some_messages(q, 1); gint size_when_single_msg = stats_counter_get(q->memory_usage); feed_some_messages(q, 9); cr_assert_eq(stats_counter_get(q->memory_usage), 10*size_when_single_msg); send_some_messages(q, 10); cr_assert_eq(stats_counter_get(q->memory_usage), 0); log_queue_rewind_backlog_all(q); cr_assert_eq(stats_counter_get(q->memory_usage), 10*size_when_single_msg); log_queue_unref(q); }
static void log_writer_msg_rewind(gpointer user_data) { LogWriter *self = (LogWriter *)user_data; log_queue_rewind_backlog_all(self->queue); }
/** * afsql_dd_handle_transaction_error: * * Handle errors inside during a SQL transaction (e.g. INSERT or COMMIT failures). * * NOTE: This function can only be called from the database thread. **/ static void afsql_dd_handle_transaction_error(AFSqlDestDriver *self) { log_queue_rewind_backlog_all(self->queue); self->flush_lines_queued = 0; }
void rewind_messages(LogQueue *q) { log_queue_rewind_backlog_all(q); }