[Top][All Lists]

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

cthreads to pthreads conversion

From: Thomas Thomas
Subject: cthreads to pthreads conversion
Date: Tue, 15 May 2012 15:53:40 -0700 (PDT)

So, I have gotten this patch back to where Barry had it in 2008:
It needs testing. Specific changes that I have made are to remove the need for
condition_implies from console-client, pfinet, term, and trans. I, mostly,
followed the pattern set by Vicente in libpipe. (Which was in a strange state
in Barry's patch.) I also audited uses of trylock due to the return values
changing from cthreads to pthreads. The only questionable piece of code is
marked "BDD - Is this sane?" in ufs/sizes.c. I think Barry's replacement is

Compiling notes:
The patch should apply cleanly to HEAD as of May 14, 2012.

You need an implementation of hurd_condition_wait in libpthread: I will attach
Vicente's, which he put in sysdeps/hurd.

I had to comment out the declaration of hurd_condition_wait in
/usr/include/cthreads.h for the new one to compile.

I had to give the absolute path to libpthread2.a in libpthread.a to get the
linker to link to it. Without doing so, the linker would use the
libpthread2.a somewhere in /lib/, and I would get undefined references to

Finally, I had to apply the have_kernel_resources branch to libpthreads. A
broken patch is better than no patch. It is personally frustrating to me to be
changing the source from a working threading library to one which does not
work. At all. Given the code, programs should always fail at the first

Anyway... this is for testing. Most of the code changes were done by Barry
deFreese and Vicente Ara. I got the code back up to HEAD, and made some minor

Thomas DiModica

PS. When I typed in "make install", the system tries to boot with a read-only
file system. I can get to a shell, but alot of things don't start right. How
do I fix this?

Attachment: THEPatch.gz
Description: GNU Zip compressed data

Attachment: cancel-cond.c
Description: Text document

reply via email to

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