projects
/
deliverable
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup: clarify bytecode ownership
[deliverable/lttng-ust.git]
/
liblttng-ust
/
lttng-ust-abi.c
diff --git
a/liblttng-ust/lttng-ust-abi.c
b/liblttng-ust/lttng-ust-abi.c
index b5c305a951cc23e6a290401ce2b5c03b894e1d3c..9ba5acd5a60d72f9e9ede918a70b2cab87243abc 100644
(file)
--- a/
liblttng-ust/lttng-ust-abi.c
+++ b/
liblttng-ust/lttng-ust-abi.c
@@
-346,10
+346,10
@@
long lttng_abi_tracer_version(int objd,
}
static
}
static
-int lttng_abi_event_notifier_send_fd(void *owner, int event_notifier_notif_fd)
+int lttng_abi_event_notifier_send_fd(void *owner, int
*
event_notifier_notif_fd)
{
struct lttng_event_notifier_group *event_notifier_group;
{
struct lttng_event_notifier_group *event_notifier_group;
- int event_notifier_group_objd, ret, fd_flag
, close_ret
;
+ int event_notifier_group_objd, ret, fd_flag;
event_notifier_group = lttng_event_notifier_group_create();
if (!event_notifier_group)
event_notifier_group = lttng_event_notifier_group_create();
if (!event_notifier_group)
@@
-358,11
+358,11
@@
int lttng_abi_event_notifier_send_fd(void *owner, int event_notifier_notif_fd)
/*
* Set this file descriptor as NON-BLOCKING.
*/
/*
* Set this file descriptor as NON-BLOCKING.
*/
- fd_flag = fcntl(event_notifier_notif_fd, F_GETFL);
+ fd_flag = fcntl(
*
event_notifier_notif_fd, F_GETFL);
fd_flag |= O_NONBLOCK;
fd_flag |= O_NONBLOCK;
- ret = fcntl(event_notifier_notif_fd, F_SETFL, fd_flag);
+ ret = fcntl(
*
event_notifier_notif_fd, F_SETFL, fd_flag);
if (ret) {
ret = -errno;
goto fd_error;
if (ret) {
ret = -errno;
goto fd_error;
@@
-377,18
+377,15
@@
int lttng_abi_event_notifier_send_fd(void *owner, int event_notifier_notif_fd)
event_notifier_group->objd = event_notifier_group_objd;
event_notifier_group->owner = owner;
event_notifier_group->objd = event_notifier_group_objd;
event_notifier_group->owner = owner;
- event_notifier_group->notification_fd = event_notifier_notif_fd;
+ event_notifier_group->notification_fd = *event_notifier_notif_fd;
+ /* Object descriptor takes ownership of notification fd. */
+ *event_notifier_notif_fd = -1;
return event_notifier_group_objd;
objd_error:
lttng_event_notifier_group_destroy(event_notifier_group);
fd_error:
return event_notifier_group_objd;
objd_error:
lttng_event_notifier_group_destroy(event_notifier_group);
fd_error:
- close_ret = close(event_notifier_notif_fd);
- if (close_ret) {
- PERROR("close");
- }
-
return ret;
}
return ret;
}
@@
-443,7
+440,7
@@
long lttng_cmd(int objd, unsigned int cmd, unsigned long arg,
return 0;
case LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE:
return lttng_abi_event_notifier_send_fd(owner,
return 0;
case LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE:
return lttng_abi_event_notifier_send_fd(owner,
- uargs->event_notifier_handle.event_notifier_notif_fd);
+
&
uargs->event_notifier_handle.event_notifier_notif_fd);
default:
return -EINVAL;
}
default:
return -EINVAL;
}
@@
-715,10
+712,10
@@
long lttng_event_notifier_enabler_cmd(int objd, unsigned int cmd, unsigned long
case LTTNG_UST_FILTER:
return lttng_event_notifier_enabler_attach_filter_bytecode(
event_notifier_enabler,
case LTTNG_UST_FILTER:
return lttng_event_notifier_enabler_attach_filter_bytecode(
event_notifier_enabler,
- (struct lttng_ust_bytecode_node *) arg);
+ (struct lttng_ust_bytecode_node *
*
) arg);
case LTTNG_UST_EXCLUSION:
return lttng_event_notifier_enabler_attach_exclusion(event_notifier_enabler,
case LTTNG_UST_EXCLUSION:
return lttng_event_notifier_enabler_attach_exclusion(event_notifier_enabler,
- (struct lttng_ust_excluder_node *) arg);
+ (struct lttng_ust_excluder_node *
*
) arg);
case LTTNG_UST_CAPTURE:
return lttng_event_notifier_enabler_attach_capture_bytecode(
event_notifier_enabler,
case LTTNG_UST_CAPTURE:
return lttng_event_notifier_enabler_attach_capture_bytecode(
event_notifier_enabler,
@@
-1107,6
+1104,9
@@
int lttng_abi_map_stream(int channel_objd, struct lttng_ust_stream *info,
info->stream_nr, info->len);
if (ret)
goto error_add_stream;
info->stream_nr, info->len);
if (ret)
goto error_add_stream;
+ /* Take ownership of shm_fd and wakeup_fd. */
+ uargs->stream.shm_fd = -1;
+ uargs->stream.wakeup_fd = -1;
return 0;
return 0;
@@
-1291,7
+1291,7
@@
long lttng_event_enabler_cmd(int objd, unsigned int cmd, unsigned long arg,
int ret;
ret = lttng_event_enabler_attach_filter_bytecode(enabler,
int ret;
ret = lttng_event_enabler_attach_filter_bytecode(enabler,
- (struct lttng_ust_bytecode_node *) arg);
+ (struct lttng_ust_bytecode_node *
*
) arg);
if (ret)
return ret;
return 0;
if (ret)
return ret;
return 0;
@@
-1299,7
+1299,7
@@
long lttng_event_enabler_cmd(int objd, unsigned int cmd, unsigned long arg,
case LTTNG_UST_EXCLUSION:
{
return lttng_event_enabler_attach_exclusion(enabler,
case LTTNG_UST_EXCLUSION:
{
return lttng_event_enabler_attach_exclusion(enabler,
- (struct lttng_ust_excluder_node *) arg);
+ (struct lttng_ust_excluder_node *
*
) arg);
}
default:
return -EINVAL;
}
default:
return -EINVAL;
This page took
0.030602 seconds
and
5
git commands to generate.