mirror of
https://salsa.debian.org/ha-team/libqb
synced 2026-08-17 16:18:17 +00:00
In case of hdb.c, the problem is that `check` public API (qb_hdb_handle member struct) item (which should not be exposed publicly like this in the first place!) is typed as `int32_t`, whereas it was to be compared to `uint32_t` implementation-possessed local variables (presumably derived from the same source), which made the compiler upset (even though there was no real reason, integer promotion to unsigned type would happily occur, which is furthermore expected to be fully defined as these values come from `random` that shall return non-negative integers below `INT32_MAX`). Hence: - type these local variables to `int32_t` just as well, which allows to - simplify `random` return value handling, since they are expected to be zero-or-greater and the previously extra tested all-bits-on pattern makes undoubtfully for a negative numeric value in case of a signed integer with specified width (c.f. 7.18.1.1/C99), hence falling into complement of zero-or-greater; zero itself is also excluded for the reasons stated in the comment (which was pretty hazy and incorrect, so it gets overhaul as well) - also superfluous typecasts are removed Similar situation is with loop_timerlist.c, where we are actually fully in charge of the struct member (private API), but there are good reasons to stay consistent with the former file as the same applies to the source of that value -- it comes from `random` (equivalent comment is added here for greater symmetry). Signed-off-by: Jan Pokorný <jpokorny@redhat.com> |
||
|---|---|---|
| .tito | ||
| build-aux | ||
| docs | ||
| examples | ||
| include | ||
| lib | ||
| m4 | ||
| tests | ||
| tools | ||
| .gitignore | ||
| .tito.spec.tmpl | ||
| .travis.yml | ||
| autogen.sh | ||
| check | ||
| coding_style.txt | ||
| configure.ac | ||
| COPYING | ||
| INSTALL | ||
| libqb.spec.in | ||
| Lindent | ||
| Makefile.am | ||
| README.markdown | ||
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.
For more information, see:
-
You can build it yourself with the following commands:
$ make doxygen $ firefox ./doc/html/index.html
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
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.
- Test and report issues.
- Help others on the developers@clusterlabs.org mailing list.
- Contribute documentation, examples and test cases.
- Contribute patches.
- Spread the word.

