Re: futex system call in write

From: Mihai DonÈu
Date: Sun Jun 03 2012 - 05:16:12 EST


On Sun, 3 Jun 2012 01:58:55 -0400 Xin Tong wrote:
> I am a program with 2 threads, each of which calling printf in a loop.
> when i strace this programs. i see besides write() gets calls a good
> number of times. futex gets call many times as well. it seems to be
> related to the write system call ? how is the futex system call used
> here ? maybe write() is blocking and futex is used to wait the thread
> up when the write finishes ? if that is the case, what about other
> blocking system calls ?
>

You should probably ask this question on a glibc mailing list.

What you're seeing is the effect of using the locking version of the
standard IO calls, where before each output a mutex is acquired to
ensure thread safety. Thus futex() has nothing to do with write(), it
is merely the underlaying system call for pthread_mutex_xxxx() calls.

--
Mihai DonÈu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/