1QBUTIL.H(3)                libqb Programmer's Manual               QBUTIL.H(3)
2
3
4

NAME

6       qbutil.h - These are some convience functions used throughout libqb.
7
8

SYNOPSIS

10       #include <qb/qbutil.h>
11

DESCRIPTION

13       Locking
14
15       Time functions
16
17       Basic Stopwatch
18
19       uint64_t elapsed1;
20       uint64_t elapsed2;
21       qb_util_stopwatch_t *sw = qb_util_stopwatch_create();
22
23       qb_util_stopwatch_start(sw);
24
25       usleep(sometime);
26       qb_util_stopwatch_stop(sw);
27       elapsed1 = qb_util_stopwatch_us_elapsed_get(sw);
28
29       usleep(somemoretime);
30       qb_util_stopwatch_stop(sw);
31       elapsed2 = qb_util_stopwatch_us_elapsed_get(sw);
32
33       qb_util_stopwatch_free(sw);
34
35
36       Stopwatch with splits
37
38       Setup a stopwatch with space for 3 splits.
39
40       uint64_t split;
41       qb_util_stopwatch_t *sw = qb_util_stopwatch_create();
42
43       qb_util_stopwatch_split_ctl(sw, 3, 0);
44       qb_util_stopwatch_start(sw);
45
46       usleep(sometime);
47       qb_util_stopwatch_split(sw);
48
49       usleep(somemoretime);
50       qb_util_stopwatch_split(sw);
51
52       usleep(somemoretime);
53       qb_util_stopwatch_split(sw);
54
55       idx = qb_util_stopwatch_split_last(sw);
56       do {
57            split = qb_util_stopwatch_time_split_get(sw, idx, idx);
58            qb_log(LOG_INFO, "split %d is %"PRIu64"", last, split);
59            idx--;
60       } while (split > 0);
61
62       split = qb_util_stopwatch_time_split_get(sw, 2, 1);
63       qb_log(LOG_INFO, "time between second and third split is %"PRIu64"", split);
64
65       qb_util_stopwatch_free(sw);
66
67

SEE ALSO

69       qb_util_nano_current_get(3), qb_util_stopwatch_stop(3),
70       qb_util_stopwatch_split(3), qb_util_stopwatch_split_ctl(3),
71       qb_thread_unlock(3), qb_strerror_r(3),
72       qb_util_stopwatch_time_split_get(3), qb_util_set_log_function(3),
73       qb_util_timespec_from_epoch_get(3), qb_thread_lock_destroy(3),
74       qb_thread_trylock(3), qb_util_nano_monotonic_hz(3),
75       qb_util_nano_from_epoch_get(3), qb_util_stopwatch_create(3),
76       qb_util_stopwatch_split_last(3), qb_thread_lock(3),
77       qb_util_stopwatch_free(3), qb_thread_lock_create(3),
78       qb_timespec_add_ms(3), qb_util_stopwatch_start(3),
79       qb_util_stopwatch_us_elapsed_get(3),
80       qb_util_stopwatch_sec_elapsed_get(3)
81
83       Copyright (C) 2010-2020 Red Hat, Inc.
84
85
86
87LIBQB                             2021-11-12                       QBUTIL.H(3)
Impressum