Go to file
Dario Casalinuovo 7771139cdf BMediaEventLooper: Rewrite ControlLoop()
* The first problem was the O(n^2) complexity of the algorithm, it's
  now linear and try to act in a circular way by dispatching
  events and reading the port in a balanced way. This exclude
  a certain degree of possible deadlocks.
* Add detection and escape when the system try to kill the
  thread. This solve some blocking issues on exit et similia
  that i had with libjackcompat.
* The algorithm choose soon which event to focus on.
* Lateness is calculated just before the event is dispatched
  as it is the more appropriate place, otherwise we would be
  calculating something imprecise/guessed.
* Remove timed_event_queue::queued_time. It's more precise to
  just use the RealTime() before to Dispatch the event.
* It should solve the BSoundPlayer lateness problems.
* With those improvements the media_kit is not going to lock
  completely under stress conditions, instead it try to work
  in a best effort shape.
* There's still room for improvements, for example i'm considering some
  strategies in lateness situations such as update scheduling latency,
  try to decrease waiting time and detect when we are too early on
  the other hand to recover when the load go down.
* Thanks to Julian Harnath for sharing his WIP patch which helped
  with some controls such as avoiding negative lateness.
* Comments are welcome!
2015-08-03 01:35:09 +02:00
3rdparty recipe.syntax.vim: Update following SRC_URI/SRC_FILENAME change 2015-07-02 19:28:11 +02:00
build Update binutils packages. 2015-08-02 14:48:01 +02:00
data Update translations from Pootle 2015-08-01 06:38:35 +02:00
docs BReferenceable docs: Fix a typo and one obvious mixup. 2015-08-02 23:19:07 +02:00
headers BMediaEventLooper: Rewrite ControlLoop() 2015-08-03 01:35:09 +02:00
src BMediaEventLooper: Rewrite ControlLoop() 2015-08-03 01:35:09 +02:00
.gitignore .gitignore: add .pyc and .pyo files. 2015-06-19 15:40:40 -04:00
configure Added some support for GCC 5+. 2015-07-20 21:45:02 +02:00
Jamfile diffutils: use the outsourced packages. 2015-08-01 14:04:10 +02:00
Jamrules build: delete DocumentationRules. 2015-06-22 13:20:07 -04:00
ReadMe.Compiling.md ReadMe.Compiling: specify Bison 2.4 as the minimum. 2015-06-22 13:20:01 -04:00
ReadMe.md ReadMe: HaikuPorts has moved to GitHub. 2015-06-30 10:03:49 -04:00

Haiku

Homepage | Mailing Lists | IRC Channels | Issue Tracker | API docs

Haiku is an open-source operating system that specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.

Goals

  • Sensible defaults with minimal configuration required.
  • Clean, clear, concise code.
  • Unified desktop environment.

Trying Haiku

Haiku provides pre-built nightly images and release images. Haiku is compatible with a large variety of hardware, but in case you don't want to "take the plunge" and install Haiku on bare metal, you can install it on a virtual machine (VM) instead. If you've never used a VM before, you can follow one of the "Emulating Haiku" guides.

Compiling Haiku

See ReadMe.Compiling.

Contributing

Haiku is a meritocratic open source project with a large variety of tasks. Even if you can't write code, you can still help! Haiku needs designers, (technical) writers, translators, testers... Get involved and help out!

Contributing code

If you're submitting a patch to us, please make sure you're following the patch submitting guidelines.

If you're having trouble finding something in the source tree, you can use one of our OpenGrok servers:

Contributing documentation

The main piece of documentation that still needs work are the API docs (found in the tree at docs/user). Just find an undocumented class, write documentation for it, and submit a patch.

Contributing translations

See wiki:i18n.

Contributing software ports

See HaikuPorts.