File::Tee , , system XS-, perlio. , Windows.
IO::Tee -, , . File::Tee :
flock($teefh, LOCK_EX) if $target->{lock};
print $teefh $cp;
flock($teefh, LOCK_UN) if $target->{lock};
IO::Tee, :
use Fcntl ':flock';
no warnings 'redefine';
sub IO::Tee::PRINT
{
my $self = shift;
my $ret = 1;
foreach my $fh (@$self) {
flock($fh, LOCK_EX);
undef $ret unless print $fh @_;
flock($fh, LOCK_UN);
}
return $ret;
}
sub IO::Tee::PRINTF
{
my $self = shift;
my $fmt = shift;
my $ret = 1;
foreach my $fh (@$self) {
flock($fh, LOCK_EX);
undef $ret unless printf $fh $fmt, @_;
flock($fh, LOCK_UN);
}
return $ret;
}