projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use initial-exec TLS model
[lttng-ust.git]
/
liblttng-ust
/
lttng-context-vtid.c
diff --git
a/liblttng-ust/lttng-context-vtid.c
b/liblttng-ust/lttng-context-vtid.c
index 7d83b87c90bcf804f796e497d5ecd35162668cb0..8c9bbec56e67324bdaeeca71893197a58b571f38 100644
(file)
--- a/
liblttng-ust/lttng-context-vtid.c
+++ b/
liblttng-ust/lttng-context-vtid.c
@@
-20,6
+20,7
@@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#define _LGPL_SOURCE
#include <sys/types.h>
#include <unistd.h>
#include <lttng/ust-events.h>
#include <sys/types.h>
#include <unistd.h>
#include <lttng/ust-events.h>
@@
-33,7
+34,7
@@
* We cache the result to ensure we don't trigger a system call for
* each event.
*/
* We cache the result to ensure we don't trigger a system call for
* each event.
*/
-static DEFINE_URCU_TLS(pid_t, cached_vtid);
+static DEFINE_URCU_TLS
_IE
(pid_t, cached_vtid);
/*
* Upon fork or clone, the TID assigned to our thread is not the same as
/*
* Upon fork or clone, the TID assigned to our thread is not the same as
@@
-46,7
+47,7
@@
void lttng_context_vtid_reset(void)
}
static
}
static
-size_t vtid_get_size(size_t offset)
+size_t vtid_get_size(s
truct lttng_ctx_field *field, s
ize_t offset)
{
size_t size = 0;
{
size_t size = 0;
@@
-69,11
+70,11
@@
void vtid_record(struct lttng_ctx_field *field,
static
void vtid_get_value(struct lttng_ctx_field *field,
static
void vtid_get_value(struct lttng_ctx_field *field,
-
union
lttng_ctx_value *value)
+
struct
lttng_ctx_value *value)
{
if (caa_unlikely(!URCU_TLS(cached_vtid)))
URCU_TLS(cached_vtid) = gettid();
{
if (caa_unlikely(!URCU_TLS(cached_vtid)))
URCU_TLS(cached_vtid) = gettid();
- value->s64 = URCU_TLS(cached_vtid);
+ value->
u.
s64 = URCU_TLS(cached_vtid);
}
int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
}
int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
@@
-98,6
+99,7
@@
int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
field->get_size = vtid_get_size;
field->record = vtid_record;
field->get_value = vtid_get_value;
field->get_size = vtid_get_size;
field->record = vtid_record;
field->get_value = vtid_get_value;
+ lttng_context_update(*ctx);
return 0;
}
return 0;
}
This page took
0.024303 seconds
and
4
git commands to generate.