use Fcntl qw/:flock/; ... my $i2c = HiPi::Device::I2C->new(...); ... flock($i2c->fh, LOCK_EX) or die "flock: $!"; $i2c->bus_write(...); flock($i2c->fh, LOCK_UN) or die "flock: $!";