summaryrefslogtreecommitdiff
path: root/telepathy-logger/log-manager.c
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@freedesktop.org>2012-08-31 14:18:43 +0200
committerDebarshi Ray <debarshir@freedesktop.org>2013-01-09 15:32:59 +0100
commit7818d410e868a1bd8a42eb0de1a754387561cedc (patch)
treef3ad7169985a10aa7748b735910397fda0586b4b /telepathy-logger/log-manager.c
parentd7302bd2c4ae43a962a293b53998bd03423adba4 (diff)
downloadtelepathy-logger-7818d410e868a1bd8a42eb0de1a754387561cedc.tar.gz
log-walker: Run the filter synchronously in the walker
This ensures that the TplLogEventFilter is always run from the same thread which invoked the walker. This is implemented by keeping track of skipped events in the history instead of silently ignoring them within the LogIters. This has the nice side effect that we do not need to run the filter while rewinding. Fixes: https://bugs.freedesktop.org/54270
Diffstat (limited to 'telepathy-logger/log-manager.c')
-rw-r--r--telepathy-logger/log-manager.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/telepathy-logger/log-manager.c b/telepathy-logger/log-manager.c
index f3f1795..ede6d26 100644
--- a/telepathy-logger/log-manager.c
+++ b/telepathy-logger/log-manager.c
@@ -1202,16 +1202,14 @@ tpl_log_manager_walk_filtered_events (TplLogManager *manager,
g_return_val_if_fail (TPL_IS_ENTITY (target), NULL);
priv = manager->priv;
- walker = tpl_log_walker_new ();
+ walker = tpl_log_walker_new (filter, filter_data);
for (l = priv->readable_stores; l != NULL; l = g_list_next (l))
{
TplLogStore *store = TPL_LOG_STORE (l->data);
TplLogIter *iter;
- iter = _tpl_log_store_create_iter (store, account, target, type_mask,
- filter, filter_data);
-
+ iter = _tpl_log_store_create_iter (store, account, target, type_mask);
if (iter != NULL)
tpl_log_walker_add_iter (walker, iter);
}