Skip to content

Commit

Permalink
perf_reader : add timeout argument to perf_reader_poll
Browse files Browse the repository at this point in the history
  • Loading branch information
SunKyu committed Oct 14, 2015
1 parent c9b920b commit f8eb545
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/cc/perf_reader.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ static void event_read(struct perf_reader *reader) {
}
}

int perf_reader_poll(int num_readers, struct perf_reader **readers) {
int perf_reader_poll(int num_readers, struct perf_reader **readers, int timeout) {
struct pollfd pfds[] = {
{readers[0]->fd, POLLIN},
};
if (poll(pfds, num_readers, -1) > 0) {
if (poll(pfds, num_readers, timeout) > 0) {
int i;
for (i = 0; i < num_readers; ++i) {
if (pfds[i].revents & POLLIN)
Expand Down
2 changes: 1 addition & 1 deletion src/cc/perf_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ struct perf_reader;
struct perf_reader * perf_reader_new(int fd, int page_cnt, perf_reader_cb cb, void *cb_cookie);
void perf_reader_free(void *ptr);
int perf_reader_mmap(struct perf_reader *reader, int fd, unsigned long sample_type);
int perf_reader_poll(int num_readers, struct perf_reader **readers);
int perf_reader_poll(int num_readers, struct perf_reader **readers, int timeout);
6 changes: 3 additions & 3 deletions src/python/bcc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
lib.bpf_detach_kprobe.restype = ct.c_int
lib.bpf_detach_kprobe.argtypes = [ct.c_char_p]
lib.perf_reader_poll.restype = ct.c_int
lib.perf_reader_poll.argtypes = [ct.c_int, ct.POINTER(ct.c_void_p)]
lib.perf_reader_poll.argtypes = [ct.c_int, ct.POINTER(ct.c_void_p), ct.c_int]
lib.perf_reader_free.restype = None
lib.perf_reader_free.argtypes = [ct.c_void_p]

Expand Down Expand Up @@ -780,7 +780,7 @@ def num_open_kprobes():
"""
return len(open_kprobes)

def kprobe_poll(self):
def kprobe_poll(self, timeout = -1):
"""kprobe_poll(self)
Poll from the ring buffers for all of the open kprobes, calling the
Expand All @@ -790,7 +790,7 @@ def kprobe_poll(self):
for i, v in enumerate(open_kprobes.values()):
readers[i] = v
try:
lib.perf_reader_poll(len(open_kprobes), readers)
lib.perf_reader_poll(len(open_kprobes), readers, timeout)
except KeyboardInterrupt:
pass

0 comments on commit f8eb545

Please sign in to comment.