NAME Linux::Futex - Perl extension for using Futexes SYNOPSIS use Linux::Futex (); my $mutex_buf = " "; my $mutex = Linux::Futex::addr($mutex_buf); Linux::Futex::init($mutex); # Execute once to set to zero Linux::Futex::lock($mutex); # do something critical Linux::Futex::unlock($mutex); Note that this examples mutex is local so wouldn't be much use for inter-process. Use shared memory (eg. IPC::SharedMem) to make this work. DESCRIPTION This perl module implements the high performance lightweight process synchronization method using 'futexes' implemented in recent Linux Kernels. EXPORT None by default. addr() Return the address of a string for use in mutex calls. Uses the same format as IPC::SharedMem. Requires a string of at least 4 bytes. init() Initialize the futex with 0 lock() Lock the futex. If currently locked then block until released. unlock() Unlock the futex. If not currently locked then no-op. SEE ALSO The original paper on which this code is based: * *Futexes Are Tricky* by Ulrich Drepper (), (Published on Nov 5, 2011) Some further discussion and improvements in: * See AUTHOR Nick Townsend, COPYRIGHT AND LICENSE Copyright (C) 2014 by Nick Townsend This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.