Haiku's (Kernel) Condition Variables API: Design & Implementation

Blog post by waddlesplash on Mon, 2023-04-24 13:00

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.)

Haiku Activity & Contract Report, March 2023

Blog post by waddlesplash on Thu, 2023-04-06 16:00

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56804 through hrev56887.

Haiku Depot Server Technology Modernisation

Blog post by apl on Sun, 2023-04-02 12:00

This article is cross-posted from Andrew Lindesay’s blog here. Java technology has been moving forward much faster in recent years with more frequent updates. Java 17 Long Term Support (LTS) was introduced in September 2021 and will be followed by Java 21 LTS in September 2023. With HaikuDepotServer (HDS) still on Java 11 introduced in September 2018, it was time to upgrade to 17 and then also make the transition from Spring 5 to SpringBoot 3 which was released in November 2022.

Haiku Activity & Contract Report, February 2023

Blog post by waddlesplash on Sat, 2023-03-11 23:30

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56748 through hrev56803.

Haiku Activity & Contract Report, January 2023

Blog post by waddlesplash on Tue, 2023-02-14 23:30

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.

Haiku Activity & Contract Report, December 2022

Blog post by waddlesplash on Thu, 2023-01-12 23:30

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56627 through hrev56681.

HTTP Network Services Preview in R1 Beta 4

Blog post by nielx on Fri, 2022-12-30 00:00

The newest beta of Haiku includes a preview of a redesigned, modern HTTP library as the initial part of an renewed Network Services Kit. The primary goal of including the library is to get developers to experiment with it and give feedback on how it works within their software. The secondary goal is to gather some feedback on the use of modern C++ and some additional experimental features. This article provides a background to the new kit, some pointers on how to get started, and some notes on experimental designs that utilize modern C++ features.

Haiku Activity & Contract Report, November 2022

Blog post by waddlesplash on Mon, 2022-12-12 22:30

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56565 through hrev56626.

Haiku Activity & Contract Report, October 2022

Blog post by waddlesplash on Mon, 2022-11-14 23:40

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56505 to hrev56564.

Haiku Activity & Contract Report, September 2022

Blog post by waddlesplash on Mon, 2022-10-10 23:50

As is the usual way of things, the monthly Activity Report is hereby combined with my Contract Report.

This report covers hrev56400 to hrev56504.