Futex
-
Hallo zusammen
Hat jemand ein einfaches Beispiel wie man Futexe einsetzt?
Was ist der Unterschied zwischen den beiden Funktionen:
asmlinkage long sys_futex(u32 __user *uaddr, int op, int val,
struct timespec __user *utime, u32 __user *uaddr2);long do_futex(unsigned long uaddr, int op, int val,
unsigned long timeout, unsigned long uaddr2, int val2);in /usr/include/linux/futex.h?
Danke und Gruss
Martin
-
Ich glaube nicht, dass das zur direkten Verwendung gedacht ist. Man sollte eigentlich pthread_mutex_* verwenden, das nimmt eh die futex-Variante, wenn du ein NPTL System hast.
-
Ja, das ist mir bekannt. Allerdings brauche ich für eine Arbeit trotzdem direkt Futexe.
Gruss
Martin
-
Dann musst du wohl in der glibc stöbern und schauen, wie's dort gemacht wird.
-
Ja das habe ich versucht, aber in der glibc-Source Version 2.3.2 von http://www.gnu.org/directory/glibc.html habe ich nichts gefunden.
Ich habe gedacht, dass die NPTL schon in der glibc drin ist. Muss ich das noch einen Patch oder etwas Zusätzliches herunterladen? Von wo?Danke und Gruss
Martin
-
In 2.3.2 ist es noch nicht drin. Saug dir z.B. das .src.rpm von RedHat 9, da ist ein ntpl-<irgendwas>.tar.gz enthalten.
-
Auf http://people.redhat.com/drepper/ gibt's ein PDF "Futex Programming"