[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RFC: Lightweight synchronization mechanism for gnumach

From: Agustina Arzille
Subject: Re: RFC: Lightweight synchronization mechanism for gnumach
Date: Sun, 28 Feb 2016 16:13:34 -0300

On 02/28/2016 02:59 PM, Richard Braun wrote:
On Sat, Feb 27, 2016 at 10:53:12PM -0300, Agustina Arzille wrote:
Hello, everyone.

Here's a patch for gnumach that implements a lightweight synchronization
mechanism. It can be used as a basis to build many higher-level objects like
mutexes, semaphores, etc. Given its genericity, and because I'm terrible at
naming things, I decided to name this module "gsync", as in
"generic synchronization".

It's been a long time since we've received such high quality
contributions out of the blue. Thanks for that :).

The patch looks fine, although I've only taken a quick look for now.
Concerning names and the interface, I'd personally advocate following
what Linux does, because Linux is the de facto current standard, and
it would make it easier to e.g. reuse the pthread glibc implementation
(some efforts regarding portability have been made there but I'm
almost positive having a semi or completely compatible interface would
help a lot). The Linux mechanism is also very well documented and
they've spent time on the tricky issues already, so we might just
avoid wasting time there.

In any case, it's definitely the right direction.

Hello, Richard.

Thank you for your kind words!

I named it differently because I feel "futex" doesn't really convey what it
does, but I agree that consistency with standards (even de facto ones) is
a good idea.

On the other hand, I would prefer it if we made some changes to the interface
as implemented in the Linux kernel. Linux has a single, monolithic syscall
that multiplexes according to an "operation" parameter. For gnumach, I think
having separate RPC's is the better way.

I'll resubmit the patch with the new names when I come back from lunch.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]