SoW-2020-0002: Trace Hit Counters: trigger error reporting integration
[lttng-tools.git] / doc / examples / trigger-on-event / performance / producer.c
CommitLineData
2463b787
JR
1/*
2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 * Copyright (C) 2020 Jonathan Rajotte-Julien <jonathan.rajotte-julein@efficios.com>
4 *
5 * SPDX-License-Identifier: MIT
6 *
7 */
8#include "performance.h"
9
10#include <lttng/tracepoint.h>
11
12#include <lttng/condition/event-rule.h>
13#include <lttng/lttng.h>
14
15#include <stdbool.h>
16#include <stddef.h>
17#include <stdio.h>
18#include <stdlib.h>
19#include <string.h>
20#include <sys/time.h>
21#include <time.h>
22#include <unistd.h>
23#include <assert.h>
24
25int main(int argc, char **argv)
26{
27 int ret = 0;
28 int nb_hit;
29 int id;
30 long long sleep_ms;
31 struct timespec sleep_time;
32 struct timespec sleep_rm;
33
34 if (argc != 4) {
35 fprintf(stderr, "Missing unique_id\n");
36 fprintf(stderr, "Missing number of event \n");
37 fprintf(stderr, "Missing delay between event in ms \n");
38 fprintf(stderr, "Usage: producer id bn_event delay_ms\n");
39 ret = 1;
40 goto end;
41 }
42
43 id = atoi(argv[1]);
44 nb_hit = atoi(argv[2]);
45 sleep_ms = atoll(argv[3]);
46
47 sleep_time.tv_sec = sleep_ms / 1000;
48 sleep_time.tv_nsec = (sleep_ms % 1000) * 1000000;
49
50 for (int i = 0; i < nb_hit; i++) {
51 tracepoint(performance, hit, 0, i);
52 nanosleep(&sleep_time, &sleep_rm);
53 }
54
55end:
56 return !!ret;
57}
This page took 0.025353 seconds and 5 git commands to generate.