static int action_executor_notify_handler(struct action_executor *executor,
const struct action_work_item *work_item,
- struct action_work_subitem *item)
+ struct action_work_subitem *item __attribute__((unused)))
{
return notification_client_list_send_evaluation(work_item->client_list,
work_item->trigger,
}
static int action_executor_start_session_handler(
- struct action_executor *executor,
+ struct action_executor *executor __attribute__((unused)),
const struct action_work_item *work_item,
struct action_work_subitem *item)
{
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
}
static int action_executor_stop_session_handler(
- struct action_executor *executor,
+ struct action_executor *executor __attribute__((unused)),
const struct action_work_item *work_item,
struct action_work_subitem *item)
{
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
}
static int action_executor_rotate_session_handler(
- struct action_executor *executor,
+ struct action_executor *executor __attribute__((unused)),
const struct action_work_item *work_item,
struct action_work_subitem *item)
{
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
}
static int action_executor_snapshot_session_handler(
- struct action_executor *executor,
+ struct action_executor *executor __attribute__((unused)),
const struct action_work_item *work_item,
struct action_work_subitem *item)
{
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
}
-static int action_executor_list_handler(struct action_executor *executor,
- const struct action_work_item *work_item,
- struct action_work_subitem *item)
+static int action_executor_list_handler(
+ struct action_executor *executor __attribute__((unused)),
+ const struct action_work_item *work_item __attribute__((unused)),
+ struct action_work_subitem *item __attribute__((unused)))
{
ERR("Execution of a list action by the action executor should never occur");
abort();
bool signal = false;
LTTNG_ASSERT(trigger);
+ ASSERT_RCU_READ_LOCKED();
pthread_mutex_lock(&executor->work.lock);
/* Check for queue overflow. */