projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implement ring buffer clients
[lttng-ust.git]
/
libust
/
ltt-events.c
diff --git
a/libust/ltt-events.c
b/libust/ltt-events.c
index a94e8f9a1dde6a6e315133e59c66e3659455f99d..3457699f812edfaa347aec64086321b2aa341b49 100644
(file)
--- a/
libust/ltt-events.c
+++ b/
libust/ltt-events.c
@@
-34,8
+34,6
@@
int _ltt_event_metadata_statedump(struct ltt_session *session,
static
int _ltt_session_metadata_statedump(struct ltt_session *session);
static
int _ltt_session_metadata_statedump(struct ltt_session *session);
-
-static
void synchronize_trace(void)
{
synchronize_sched();
void synchronize_trace(void)
{
synchronize_sched();
@@
-108,12
+106,9
@@
int ltt_session_enable(struct ltt_session *session)
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
- synchronize_trace(); /* Wait for in-flight events to complete */
ret = _ltt_session_metadata_statedump(session);
ret = _ltt_session_metadata_statedump(session);
- if (ret)
{
+ if (ret)
ACCESS_ONCE(session->active) = 0;
ACCESS_ONCE(session->active) = 0;
- synchronize_trace(); /* Wait for in-flight events to complete */
- }
end:
mutex_unlock(&sessions_mutex);
return ret;
end:
mutex_unlock(&sessions_mutex);
return ret;
@@
-129,7
+124,6
@@
int ltt_session_disable(struct ltt_session *session)
goto end;
}
ACCESS_ONCE(session->active) = 0;
goto end;
}
ACCESS_ONCE(session->active) = 0;
- synchronize_trace(); /* Wait for in-flight events to complete */
end:
mutex_unlock(&sessions_mutex);
return ret;
end:
mutex_unlock(&sessions_mutex);
return ret;
@@
-139,6
+133,8
@@
int ltt_channel_enable(struct ltt_channel *channel)
{
int old;
{
int old;
+ if (channel == channel->session->metadata)
+ return -EPERM;
old = xchg(&channel->enabled, 1);
if (old)
return -EEXIST;
old = xchg(&channel->enabled, 1);
if (old)
return -EEXIST;
@@
-149,6
+145,8
@@
int ltt_channel_disable(struct ltt_channel *channel)
{
int old;
{
int old;
+ if (channel == channel->session->metadata)
+ return -EPERM;
old = xchg(&channel->enabled, 0);
if (!old)
return -EEXIST;
old = xchg(&channel->enabled, 0);
if (!old)
return -EEXIST;
@@
-159,6
+157,8
@@
int ltt_event_enable(struct ltt_event *event)
{
int old;
{
int old;
+ if (event->chan == event->chan->session->metadata)
+ return -EPERM;
old = xchg(&event->enabled, 1);
if (old)
return -EEXIST;
old = xchg(&event->enabled, 1);
if (old)
return -EEXIST;
@@
-169,6
+169,8
@@
int ltt_event_disable(struct ltt_event *event)
{
int old;
{
int old;
+ if (event->chan == event->chan->session->metadata)
+ return -EPERM;
old = xchg(&event->enabled, 0);
if (!old)
return -EEXIST;
old = xchg(&event->enabled, 0);
if (!old)
return -EEXIST;
This page took
0.024139 seconds
and
4
git commands to generate.