#include "utils.hpp"
#include <common/defaults.hpp>
+#include <common/urcu.hpp>
#include <inttypes.h>
#include <string.h>
struct snapshot *snapshot)
{
int ret = 0, nb_uri;
- struct lttng_uri *uris = NULL;
+ struct lttng_uri *uris = nullptr;
/* Create an array of URIs from URLs. */
nb_uri = uri_parse_str_urls(ctrl_url, data_url, &uris);
return ret;
}
-struct snapshot_output *snapshot_output_alloc(void)
+struct snapshot_output *snapshot_output_alloc()
{
return zmalloc<snapshot_output>();
}
LTTNG_ASSERT(output);
iter.iter.node = &output->node.node;
- rcu_read_lock();
+ lttng::urcu::read_lock_guard read_lock;
ret = lttng_ht_del(snapshot->output_ht, &iter);
- rcu_read_unlock();
LTTNG_ASSERT(!ret);
/*
* This is safe because the ownership of a snapshot object is in a session
LTTNG_ASSERT(snapshot->output_ht);
LTTNG_ASSERT(output);
- rcu_read_lock();
+ lttng::urcu::read_lock_guard read_lock;
lttng_ht_add_unique_ulong(snapshot->output_ht, &output->node);
- rcu_read_unlock();
/*
* This is safe because the ownership of a snapshot object is in a session
* for which the session lock need to be acquired to read and modify it.
struct snapshot_output *snapshot_find_output_by_name(const char *name, struct snapshot *snapshot)
{
struct lttng_ht_iter iter;
- struct snapshot_output *output = NULL;
+ struct snapshot_output *output = nullptr;
LTTNG_ASSERT(snapshot);
LTTNG_ASSERT(name);
}
/* Not found */
- return NULL;
+ return nullptr;
}
/*
{
struct lttng_ht_node_ulong *node;
struct lttng_ht_iter iter;
- struct snapshot_output *output = NULL;
+ struct snapshot_output *output = nullptr;
LTTNG_ASSERT(snapshot);
ASSERT_RCU_READ_LOCKED();
return;
}
- rcu_read_lock();
- cds_lfht_for_each_entry (obj->output_ht->ht, &iter.iter, output, node.node) {
- snapshot_delete_output(obj, output);
- snapshot_output_destroy(output);
+ {
+ lttng::urcu::read_lock_guard read_lock;
+
+ cds_lfht_for_each_entry (obj->output_ht->ht, &iter.iter, output, node.node) {
+ snapshot_delete_output(obj, output);
+ snapshot_output_destroy(output);
+ }
}
- rcu_read_unlock();
+
lttng_ht_destroy(obj->output_ht);
}