Commit graph

49 commits

Author SHA1 Message Date
acb674a9d2 Project: update and clean-up Doxygen configuration
...in an attempt to clarify why numerous cross links are not generated.
In the end, this attempt was not very successful, yet I could find some breadcrumbs...

- file comments generally seem to have a problem with auto link generation;
  only fully qualified names seem to work reliably

- cross links to entities within a namespace do not work,
  if the corresponding namespace is not documented in Doxygen

- documentation for entities within anonymous namespaces
  must be explicitly enabled. Of course this makes only sense
  for detailed documentation (but we do generate detailed
  documentation here, including implementation notes)

- and the notorious problem: each file needs a valid @file comment

- the hierarchy of Markdown headings must be consistent within each
  documentation section. This entails also to individual documented
  entities. Basically, there must be a level-one heading (prefix "#"),
  otherwise all headings will just disappear...

- sometimes the doc/devel/doxygen-warnings.txt gives further clues
2021-01-24 19:35:45 +01:00
a49d79ffbd Library: fix spurious wake-up from (non)timed wait
A classical carry-over of dirty values...
Problem arises, when starting an unconditional wait on the same object monitor,
which previously conducted a timed wait. Then the obsolete timeout from the previous
wait remained in place, causing our Sync-Wrapper (erroneously) to assume a timed wait
and then pthread to return immediately from this timed wait.

The result was permanent idle looping in the ProcDispatcher, after the first command was processed
2018-12-10 00:09:56 +01:00
4988153e15 Library: prevent implicit bool conversion on iterator-like objects
...it should have been this way all the time.
Generic code might otherwise be ill guided to assume a conversion
from the Iterator to its value type, while in fact an explicit dereferentiation is necessary
2018-09-14 21:06:14 +02:00
89d93a13e4 Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
685a9b84ee Library: replace boost::noncopyable by our own library solution
Benefits
 - get rid of yet another pervasive Boost dependency
 - define additional more fine grained policies (move only, clonable)
2018-03-24 05:35:13 +01:00
458fda4058 DispatcherLoop implementation complete (closes #1049)
Did a full review of state and locking logic, seems airtight now.
- command processing itself is unimplemented, we log a TODO message for now
- likewise, builder is not implemented
- need to add the deadlock safeguard #1054
2017-01-05 23:36:42 +01:00
1a4b6545a0 maximum munch
...feels like X-mas
2016-12-23 04:23:03 +01:00
96def6b1ba Looper: elaborate implementation
looks doable indeed...
2016-12-22 03:12:14 +01:00
00077d0431 ProcDispatcher: decide on requirements and implementation structure (#1049) 2016-12-15 20:48:35 +01:00
6822a9e2fb DOC: reorganise the Doxygen configuration and structure
- upgrade the configuration to a current version
- provide a frontpage with cross-links to other documentation
- define a set of modules; relevant classes and files can be
  added to these, to create a exploration path for new readers
- fix a lot of errors in documentation comments
- use a custom configuration for the documentation pages
- tweak the navigation, the sections and further arrangements
2013-10-25 06:34:38 +02:00
974c670d41 fix **** in doxygen comments
to make them stand out more prominently, some entity comments
where started with a line of starts. Unfortunately, doxygen
(and javadoc) only recogise comments which are started exactly
with /**

This caused quite some comments to be ignored by doxygen.
Credits to Hendrik Boom for spotting this problem!

A workaround is to end the line of stars with *//**
2013-10-24 23:06:36 +02:00
4ea20f0e74 Clang(#928): fix inconsistencies and compilation problems
Compilation with Clang 3.0 (which is available in Debian/stable) fails,
mostly due to some scoping and naming inconsistencies which weren't detected
by GCC. At some instances, Clang seems to have problems to figure out a
perfectly valid type definition; these can be resolved by more explicit
typing (which is preferrable anyway)
2013-09-27 23:23:13 +02:00
a2e4a23b30 bugfix 2013-01-11 14:11:51 +01:00
29e67e828d remove NoBug resourcetracker and switch back to plain pthreads
due to desing shortcomings, the resourcetracker
produces lots of false positives and inhibits
any further diagnostics regarding GUI startup.
2011-02-07 09:55:39 +01:00
3f1b7651e9 GPL header whitespace 2010-12-17 23:28:49 +01:00
b41bd20de4 push accessing the DiagnosticContext down one layer
accessing the DiagnosticContext now inline when
providing the paramters for calling the C-functions.
No change in functionality, but saves us a lot of
syntactic noise.
2010-02-13 05:33:08 +01:00
3466793976 repackage as a more general facility (DiagnosticContext)
implementation unaltered (just managing the NoBug handle)
2010-02-13 04:54:59 +01:00
4dfd7266b9 draft solution to factor out management of the resource handle
based on the idea of a diagnostic context stack
2010-02-13 04:03:27 +01:00
763f86fe0e back out changes I do not want in lib/sync.hpp
especially, I do not want to pass a resource handle
through all locking function APIs; the memory
management of the resource tracker should better
be kept separate and not mixed with the monitor.

Also, I am rather reluctand regarding any extended
functionality for the monitor, like timed locks
or trylocks or read/write monitors. I think, the
monitor pattern is only beneficial when it is kept
fairly simple, advanced thread programming should
be pushed out into lib functions in the backend.
2010-02-12 05:22:17 +01:00
Christian Thaeter
9fc68c9d32 Merge remote branch 'public/nobug201001.2' into backend_devel
* public/nobug201001.2:
  integrating nobug context passing
  updates for nobug 201001.2

Conflicts:
	configure.ac
	src/lib/condition.h
	src/lib/reccondition.h
	tests/backend/test-threads.c
2010-01-23 06:56:39 +01:00
Christian Thaeter
c15f2247d7 integrating nobug context passing
Somewhat more intrusive than the previous patch,
adds contexts everywhere except for sync.hpp where only default ctors
are used.
2010-01-23 01:40:27 +01:00
Christian Thaeter
e2c5aceec4 FIX: off by one error in time normalization
"The value of the nanoseconds field must be in the range 0 to 999999999."
2010-01-18 18:45:02 +01:00
Christian Thaeter
aea546554b reworked sync.hpp using libraries locking functions 2010-01-14 21:15:13 +01:00
373f9a5724 fix Ticket #272 (synchronisation from const methods) 2009-10-11 05:57:39 +02:00
3b1e2f00a8 rewrite simulated "subsystem". Hopefully closes Ticket #253
- clarify the meaning of run(true), run(fail), run(throw)
- do a real handshake between start() and the subsystem thread
- avoid accessing the SubsystenRunner after signalling termination
2009-09-29 02:38:07 +02:00
e0ff915987 adapt thread-wrapper.hpp to backend thread API change 2009-06-05 05:00:53 +02:00
99b5f8d44d adapt the Sync template 2009-06-03 18:22:11 +02:00
Christian Thaeter
4f29f302b2 split mutex.h again into mutex.h and recmutex.h 2009-06-03 18:22:10 +02:00
Christian Thaeter
a115759128 new mutex and recmutex implementation (breaks sync.hpp for now)
prepares that chained sections if different kinds can be mixed
makes recmutexes typesafe
improves nobug tracking
2009-06-03 18:22:07 +02:00
50625039d0 merge NoBug changes from master to bring this devel branch up-to-date
Next things to do will be reworking the draft/dummy to support multiple playback processes and a display callback
2009-01-25 02:10:03 +01:00
10597beeba mass rename: relocate basic Logging conf. from liblumieracommon to liblumiera 2009-01-25 00:24:42 +01:00
Christian Thaeter
b9fc2d6522 WIP: deploy new logging flags in lib 2009-01-24 22:30:25 +01:00
c6bc14375c write a draft how I'd like to deal with joining threads. 2009-01-18 22:14:56 +01:00
00a5e7028d care for copy operations 2008-12-30 08:19:32 +01:00
33ae97b50d switch in the new recursive mutex/condition impl from backend 2008-12-30 08:17:05 +01:00
075b3c8d6a fix some warnings... 2008-12-30 07:28:34 +01:00
9f9ef10c11 add a temporary impl for recursive conditions just for test
(can be removed when the implemented in the backend)
2008-12-28 02:05:04 +01:00
16adff318d Comments 2008-12-27 07:44:28 +01:00
250e3ba4df add a convenience shortcut for waiting on a bool member function 2008-12-27 06:58:13 +01:00
af8d70c2bc include fix 2008-12-27 01:30:48 +01:00
2173698e75 splitt off the (somewhat problematic) class locking case into a separate header 2008-12-26 04:25:01 +01:00
eaedab90ea Refactoring IV: move the (still problematic) ClassLock out of the Sync compound
(no semantic change, but better notation)
2008-12-26 03:47:12 +01:00
54e88e6914 Refactoring III: Recursive/Nonrecursive and Waitable as policy classes
pass test again
2008-12-26 01:50:32 +01:00
1ff7f0c656 Refactoring II: encapsulate the variants probvieded by the backend as base classes 2008-12-24 23:23:23 +01:00
2650216d9b Refactoring I: better put the timeout explicitly separate 2008-12-24 03:31:35 +01:00
36704a856e basic wait/notify impl added, waiting-test pass 2008-12-23 04:27:11 +01:00
59a7270f5d draft test for wait/notify, fails without the implementation 2008-12-23 01:32:01 +01:00
43521e3945 building block for the Condition part of the Monitor pattern 2008-12-23 00:03:04 +01:00
2b8cd00ab5 yet another renaming. call it "Sync"... 2008-12-22 17:00:15 +01:00
Renamed from src/lib/concurrency.hpp (Browse further)