As follow-up to the rework of thread-handling, likewise also
the implementation base for locking was switched over from direct
usage of POSIX primitives to the portable wrappers available in
the C++ standard library. All usages have been reviewed and
modernised to prefer λ-functions where possible.
With this series of changes, the old threadpool implementation
and a lot of further low-level support facilities are not used
any more and can be dismantled. Due to the integration efforts
spurred by the »Playback Vertical Slice«, several questions of
architecture could be decided over the last months. The design
of the Scheduler and Engine turned out different than previously
anticipated; notably the Scheduler now covers a wider array of
functionality, including some asynchronous messaging. This has
ramifications for the organisation of work tasks and threads,
and leads to a more deterministic memory management. Resource
management will be done on a higher level, partially superseding
some of the concepts from the early phase of the Lumiera project.
- most notably the NOBUG logging flags have been renamed now
- but for the configuration, I'll stick to "GUI" for now,
since "Stage" would be bewildering for an occasional user
- in a similar vein, most documentation continues to refer to the GUI
Paragraph ordering was somewhat confusing: you talk about
transport controls before defining what they actually are. Better
to define them first so that the reader knows what you are talking
about.
Introduce the new term "Fork" at various relevant places
within the documentation. We do not entirely purge the
term "track" though; rather we
- make clear that "Fork" is the entity to build tracks
- use "fork" also synonymous to the "tree of tracks"
This is very much WIP. Gone out a bit on a limb here in introducing a new
term LPI just to make it possible to explain the idea of interfaces and
plugins. Not sure if it really works though. The real test is, of course,
if it makes sense to someone reading this; or is just a load of jibberish!
The ping-pong continues: this is, yet again, another attempt
to tighten up the text on 'professionalism'.
As ever, corrections, suggestions, etc most welcome.
isn't actually *being subject to* a wider goal
or an inner demand -- isn't that exactly the core
of the distinction between "professionality"
as opposed to an attitude of someone "just doing his job"?
No problem if changes/questions are done to this section. As this section is
so important, the reviewer may correct, add or even reject the corrections
here.
We'll get there, iteratively.
- spell check
- fixed formatting
- added grouping lanes (comments)
- flipped all the cross reference arrows
- removed some of the (resolved) TODO comments
- removed some planned sections, since these are rather technical
Section Fundamental Forces corrected, all sub-sections corrected.
Some sub-sections slightly expanded for clarification purposes.
Some awkward expressrions removed, replaced or expanded.
First piece of introductory text for the Plugins/Interfaces
section. Only a somewhat long introduction of what plugins are.
TODO: discussed the 'what' of plugins, and possibly a little of
the 'why' of plugins, still require the 'how'.