From c9e2065d16da495134408bab3eaa5e6dcd3ee7e0 Mon Sep 17 00:00:00 2001 From: antrik Date: Wed, 19 Mar 2008 10:37:21 +0100 Subject: Add "pthreads conversion" task --- community/gsoc/project_ideas.mdwn | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'community/gsoc/project_ideas.mdwn') diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index d845f9ba..4596815c 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -367,6 +367,34 @@ implementing unit checks in other parts of the Hurd codebase...) This task requires experience with debugging locking issues in multithreaded applications. +* convert Hurd servers to pthreads + +The Hurd was originally created at a time when the pthreads standard didn't +exist yet. Thus all Hurd servers and libraries are using the old cthreads +package that came with Mach, which is not compatible with pthreads. + +Not only does that mean that people hacking on Hurd internals have to deal with +a non-standard thread package, which nobody is familiar with. Although a +pthreads implementation for the Hurd was created in the meantime, it's not +possible to use both cthreads and pthreads in the same program. Consequently, +pthreads can't presently be used in any Hurd servers -- including translators. + +Some work already has been done once on converting the Hurd servers and +libraries to use pthreads, but that work hasn't been finished. + +The goal of this project is to have all the Hurd code use pthreads. Should any +limitations in the existing pthreads implementation turn up that hinder this +transition, they will have to be fixed as well. + +One possible option is creating a wrapper that implements the cthreads +interfaces on top of pthreads, to ease the transition -- but it might very well +turn out that it's easier to just change all the existing code to use pthreads +directly. This is up to the student. + +This project requires relatively little Hurd-specific knowledge. Experience +with multithreaded programming in general and pthreads in particular is +required, though. + * sound support The Hurd presently has no sound support. Fixing this requires two steps: One is -- cgit v1.2.3