Update license date on all files. No functional changes.
Add some mutex debugging checks (notably for trashed data structures).
Print outstanding requests when giving a state dump using T or SIGUSR1.
Clean up a helgrind complaint in the locking primitives.
Demote mutex problem reports from assertion failure to debug, since it
doesn't seem to be 100% reliable.
Improved EP_THR_MUTEX debugging.
Rather non-intuitive changes to suppress "return value not used"
warning; just (void)ing the call no longer works.
Changes necessary to compile under C++ because it doesn't understand
that (void *) is compatible with other pointer types. This adds a lot
of explicit casts that are not needed in C.
Make ep_thr_gettid produce something useful to developers (with a
semantic change) and include EP_THR_PRItid for printing.
Snapshot on reliability work.
Basic things seems to work, including passing helgrind race condition
tests. Still more testing needed.
Make Helgrind annotations work properly for (most?) race conditions.
Back out change that defined GNU_SOURCE by default. That pulls in a
non-Posix version of strerror_r. However, without _GNUSOURCE you can't
get ffsl(3), so that has to be declared by hand. Bah humbug.
Be a bit less aggressive about using assertions.
Repairs for some compilation issues.
Be sure to set lock order bitmask after successful trylock; also, only
set the bitmask if the lock succeeds.
Add debugging to check for mutex ordering. It isn't perfect, and it
does require manually deciding on lock ordering.
Do extended mutex checking on ep_thr_mutex_trylock.
Improve extended mutex debugging and default it on for now. It should
get turned off before release.
Avoid subroutine calls if not doing extended locking checks.
More mutex debugging (Linux only)
More lock debugging improvements. Some of these changes may be too
expensive when running without debugging, so they should be on a compile
Significant changes to mutex debugging.
Move GDP_ASSERT_MUTEX_IS[UN]LOCKED into EP library; this implementation
is much less portable and relies on peeking into the secret mutex data,
but has the advantage that it seems to work. Also improves some of the
lock debugging output to add more information.
Show a stack backtrace on lock conflicts.
Update licenses to 2017.
Snapshot: get basic reading working again with new lock changes.
Add ep_thr_mutex_tryunlock function. Identical to ep_thr_mutex_unlock
except EAGAIN (mutex was not locked) doesn't print an error.
Another thread error message improvement.
Improved diagnostics in ep_thr primitives.
Improvements to thread pool (for debugging)
Ignore EDEADLK errors in ep_thr_mutex_trylock.
Substantially improve ep_thr debugging. RECOMPILE REQUIRED! The ABI
Tweak assertion code to allow for dumping process state on assertion
Fix a reference counting bug. Improve reference counting and locking
Fix a problem that was causing occassional unlocks of unlocked mutexes
(only when a subscription timed out).
Update license. No code changes.
Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.
Do better tracing on condition variables.
Fix name of debug flag to be consistent with other modules.
Since timeouts are not an error on locks, only display these on a high
debugging flag level.
Improved debugging in threading primitives.
Change ep_thr_cond_wait to take an absolute time as the timeout instead
of a delta.
Change ep_thr_cond_wait and gdp_event_next to take timeout parameters
(NULL = forever). THESE CHANGE THE API!!
Improved debugging, notably for mutexes.
Use strerror_r everywhere (this is a threaded application).
Another snapshot. Much closer to having subscriptions working.
Basics appear to be working; still have some problems in gdpd_phys.
Snapshot. Still have a deadlock, but it's on a condition variable this time.
Snapshot. Starting to work, but not there yet.
Slight interface changes; added comments.
First cut at multithreading the EP library.