| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
|
| |\ \ \
| | | |/
| | |/|
| | | | |
pthreads
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
pthreads
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
pthreads
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Functions to set and get all user accessable parts of an mqueue_block
are now provided.
Uses the qpthreads_enabled flag to allow mqueues to work (though in a
limited fashion) when pthreads are not enabled.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This supports running without pthreads, but with code that is made
thread-safe. A Big Switch -- qpthreads_enabled -- enables or disables
all pthread functions. When disabled, all mutex calls become NOPs.
|
|\ \ \ \ \ \
| | |_|_|/ /
| |/| | | | |
|
| | |_|/ /
| |/| | | |
|
|\| | | | |
|
| | |/ /
| |/| |
| | | |
| | | | |
Improved version.
|
|\| | |
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
May not set orphan symbol values to anything meaningful, but must be
allowed to unset an orphan value (which is already unset) so that
when reaming a symbol table ordinary value delete/unset functions can
be called.
So fixed the assert which was disallowing all value changes for
orphans, in symbol_set_value().
|
| |\| |
|
|\ \ \
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make one version of check prefix bit, and put it inline
with proper prototype. This gets rid of some macro's and also some
assert() that can never happen on a non-broken compiler.
* bgpd/bgp_table.c
* CHECK_BIT(): sayonara
* check_bit(): sayonara
* SET_LINK(): sayonara
* set_link(): make use of prefix_bit() instead of check_bit()
* bgp_node_match(): idem
* bgp_node_lookup(): idem
* bgp_node_get(): idem
* lib/prefix.h
* prefix_bit(): new inline version of check_bit()
* lib/table.c
* CHECK_BIT(): sayonara
* check_bit(): sayonara
* SET_LINK(): sayonara
* set_link(): make use of prefix_bit() instead of check_bit()
* route_node_match(): idem
* route_node_lookup(): idem
* route_node_get(): idem
* ospf6d/ospf6_lsdb.c
* CHECK_BIT(): sayonara
* ospf6_lsdb_lookup_next(): make use of prefix_bit() instead of
CHECK_BIT()
* ospf6_lsdb_type_router_head(): idem
* ospf6_lsdb_type_head(): idem
* ospf6d/ospf6_route.c
* CHECK_BIT(): sayonara
* ospf6_route_match_head() make use of prefix_bit() instead of
* CHECK_BIT()
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* md5.c
* md5_calc(): If building on little endian then X
will be 'const uint32_t' which causes compiler
warning in code that never gets used. Just move
the endif to make sure code is not checked.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* table.c: general type safety and compiler help:
* maskbit[]: become const
* route_node_match(): take const args
* route_node_match_ipv4(): idem
* route_node_match_ipv6(): idem
* check_bit(): idem, plus adjust local vars typing
|
| | | |
|
| | |
| | |
| | |
| | | |
heasley: I've used this for a while to track usage.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduced separate types for qtime_mono_t and qtime_real_t, to
distinguish the time base of a given value.
Revised all users of timeouts so that they are all expressed as
qtime_mono_t values, so are all Quagga monotonic time based.
Revised qpt_cond_timedwait() so that all condition variables use the
same timebase (CLOCK_MONOTONIC if available, by default). Now all
timeout times are qtime_mono_t, and are converted to whatever the
condition variable is set to, if necessary.
Added explicit timeout to mqueue.
Fixed qps_pselect() to zeroise result vectors if no fds are
reported pending -- seems the O/S does not do this.
|
| | |
| | |
| | |
| | | |
mnum, not mbits.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Also, added testing for qps_make_super_set_map() to simulate wide
range of little-/big-endian word sizes and forwards/backwards bit
numbering.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Tidied up and implemented qps_selection_validate() as a debug aid.
|
| | | |
|
| | |
| | |
| | |
| | | |
Needs debugging.
|
| | |
| | |
| | |
| | | |
Needs to use lldiv in qtime.c on 32bit machine.
|
|\ \ \ |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Improved the arithmetic and changed code to deal with wrap around
only if clock_t is 32-bits (and not to compile if it is less !).
Updated documentation.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For use when preparing for pselect or other timed wait.
Simplified the handling of pending unsets.
Tidied up in heap.c & .h.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows mutexes to be initialised as recursive.
Required correctly placed setting of _GNU_SOURCE (for gcc).
It is assumed that "config.h" will enable the required pthreads
features -- which are now documented in lib/qpthread.c.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
lib/qpselect supports data structure to multiplex between many file
descriptors using pselect().
lib/qtimers supports data structures to run multiple timers.
Also affected:
lib/Makefile.am -- to add the new files
lib/memtypes.c -- to add further memory types for the above
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added conversion routines for CLOCK_REALTIME/timeofday to/from
monotonic clock -- so can set timers to actual time, if required.
Added confirms and tidied up documentation.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Added qpt_thread_self().
Initialised output sigset_t before setting it in qpt_thread_sigmask().
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added vector_unset_item() & recast vector_unset().
Added heap_pop_push_item() and made a number of simple operations
Inline functions.
|
| | |
| | |
| | |
| | |
| | | |
Adds message queue structure to manage the passing of messages
between qpthreads.
|
| | |
| | |
| | |
| | | |
Adding qpt_thread_sigmask() and qpt_thread_signal().
|
| | |
| | |
| | |
| | |
| | | |
Changed casts around so that the seconds argument can be a floating
point value. So that, in particular, QTIME(2.33) works.
|
| | | |
|
|\ \ \ |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
pthread safe interface for logging. log.h is that interface.
|