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


i just committed the current rthreads code.  this is a replacement for the 
current userland thread library, libpthread.  the kernel is made thread 
aware and some syscalls are added to facilitate the userland library.

most of the kernel code is currently only enabled if you add RTHREADS to 
the config file.  it will probably remain this while for some time.

the userland library implements a subset of the pthreads API.  it is 
binary compatible, so it is possible to switch to it on the fly.  
currently, only i386 and amd64 are supported.  to add support for a new 
arch, copy _atomic_lock from libpthread and write rfork_thread.

the new syscalls need to be stubbed into libc, there is a diff at the end 
of this email.

there is still a lot of work to do.  signals are hard.  there are 
functions missing from the library.  but some quirks aside, i have 
been using this code since may without incident.

quite a few more details about how everything fits together can be found 
in the paper linked from events.html.

Index: Makefile.inc
RCS file: /cvs/src/lib/libc/sys/Makefile.inc,v
retrieving revision 1.75
diff -u -r1.75 Makefile.inc
--- Makefile.inc	2005/11/29 21:29:15	1.75
+++ Makefile.inc	2005/12/03 18:26:10
@@ -57,7 +57,8 @@
 	sigaltstack.o socket.o socketpair.o stat.o statfs.o swapctl.o \
 	symlink.o sync.o sysarch.o umask.o unlink.o unmount.o \
 	utimes.o vadvise.o wait4.o write.o writev.o xfspioctl.o __semctl.o \
-	__syscall.o __sysctl.o
+	__syscall.o __sysctl.o sched_yield.o getthrid.o thrsleep.o thrwakeup.o \
+	threxit.o thrsigdivert.o
 GASM=	${ASM:.o=.go}
 PASM=	${ASM:.o=.po}

die energie aus fleisch und blut        deine sprache und die ganze wut
deine gefuehle die du lebst             und dein herz fuehl wie es bebt
zeitbombe! sie tickt in dir    zeitbombe! sie explodiert in deinem kopf
                                                    - girls under glass

Visit your host, monkey.org