A few months after my contract with Haiku, Inc. began, I rewrote the implementation of the Haiku kernel’s condition variables (as opposed to our userspace condition variables, which are from POSIX.) As this new implementation has run in Haiku for over a year and shipped in the latest release with no sign of any remaining issues, I figured it is high time for a deep-dive on the API, its implementation history, and the design of the new implementation I wrote.
I expect this article will be of broader interest than just to Haiku’s community, because Haiku’s condition variables API has some notable (and powerful) features not found in those of other operating systems, and its implementation is thus likewise unique (at least, as far as I have been able to figure out.)
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56804 through hrev56887.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56748 through hrev56803.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report. Apologies for the delay in getting this one out; I had originally planned to publish it before the end of last week.
This report covers hrev56682 through hrev56747.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56627 through hrev56681.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56565 through hrev56626.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56505 to hrev56564.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56400 to hrev56504.
As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56321 to hrev56399.
David Karoly, who has been doing a lot of work in and around the ARM ports, was granted commit access last month. Welcome to the team, David!
As is now the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.
This report covers hrev56236 to hrev56320.