Go to file
Jan Friesse 48fff5eb58
Implement heap based timer list (#439)
* tlist: Add heap based implementation of timer list

Previous timer was sorted list implementation of priority queue
and very slow when number of timers increased. This is mostly
not a problem because usually only few timers are used.
But for application where bigger number of timers are needed
it may become problem.

Solution is to use binary heap based priority queue which is much
faster.

API is unchanged, just timerlist_destroy is added which should be called
to free heap array. This function also destroys mutex (omitted when
mutex was added).

* tests: Fix check loop mt test

test_th was accesed both by main thread and loop_timer thread resulting in
failure. Fix is to access test_tht in loop_timer thread.

Speed test is adding only 10000 items so it is reasonable
fast even with sorted linked list implementation.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-03-18 07:27:25 +00:00
.tito build: tito: unify custom.py with pacemaker's version 2016-12-16 15:48:25 +01:00
build-aux doxygen2man: Add option to read copyright line from the header file (#415) 2020-09-09 15:06:55 +01:00
docs doc related fixups (#421) 2020-09-25 08:52:36 +01:00
doxygen2man doxygen2man: fix printing of lines starting with '.' (#431) 2021-01-07 09:08:46 +00:00
examples Add the option of hi-res (millisecond) timestamps (#329) 2018-11-09 09:56:44 +00:00
include Implement heap based timer list (#439) 2021-03-18 07:27:25 +00:00
lib Implement heap based timer list (#439) 2021-03-18 07:27:25 +00:00
m4 doxygen2man: Add option to read copyright line from the header file (#415) 2020-09-09 15:06:55 +01:00
tests Implement heap based timer list (#439) 2021-03-18 07:27:25 +00:00
tools doc: qblog.h: syslog rarely appropriate for ordinary programs 2017-12-14 10:42:09 +01:00
.gitattributes build: allow for being consumed in a (non-endorsed) form of snapshots 2018-09-13 10:54:16 +02:00
.gitignore Doxygen2man (#388) 2020-03-18 10:29:38 +01:00
.tito.spec.tmpl build: allow for git -> automatic COPR builds integration 2016-11-18 23:32:44 +01:00
autogen.sh build: allow for being consumed in a (non-endorsed) form of snapshots 2018-09-13 10:54:16 +02:00
check UPDATED: doc (ABI comparison) and various other fixes (#324) 2018-09-25 08:38:37 +01:00
coding_style.txt Point the link to the Linux kernel coding style document to the right place (#256) 2017-05-26 14:15:32 +01:00
configure.ac doxygen2man: Add option to read copyright line from the header file (#415) 2020-09-09 15:06:55 +01:00
COPYING Re-license to LGPL 2.1 2010-05-25 06:11:59 +10:00
INSTALL The license is in COPYING, not LICENSE 2015-12-16 19:28:20 +01:00
libqb.spec.in Doxygen2man (#388) 2020-03-18 10:29:38 +01:00
Lindent Change Lindent options to break the procedure type. 2011-06-22 14:19:14 +10:00
Makefile.am doxygen2man: Add option to read copyright line from the header file (#415) 2020-09-09 15:06:55 +01:00
README.markdown doc: README: add a status badge+link for the COPR builds 2016-11-22 16:36:26 +01:00

libqb

What is libqb?

libqb is a library with the primary purpose of providing high-performance, reusable features for client-server architecture, such as logging, tracing, inter-process communication (IPC), and polling.

libqb is not intended to be an all-encompassing library, but instead provide focused APIs that are highly tuned for maximum performance for client-server applications.

Build Status COPR Build Status

For more information, see:

Dependencies

  • glib-2.0-devel (If you want to build the glib example code)
  • check-devel (If you want to run the tests)
  • doxygen and graphviz (If you want to build the doxygen man pages or html manual)

Source Control (GIT)

git clone git://github.com/ClusterLabs/libqb.git

See Github

Installing from source

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

How you can help

If you find this project useful, you may want to consider supporting its future development. There are a number of ways to support the project.