Kernel system call for sleeping a thread until a certain condition becomes true.
A basic building block for many user-level synchronization primitives.
It is supposed to stand for “fast userspace mutex”—maybe in most cases that is what it is responsible for, but in my opinion it seems to be an overloaded term as futexes are the basis for many other synchronization primitives.
See details in futex implementation.