Skip to content

Instantly share code, notes, and snippets.

@nabe-abk
Last active November 7, 2015 18:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nabe-abk/ab944576eb8bebcfcfb8 to your computer and use it in GitHub Desktop.
Save nabe-abk/ab944576eb8bebcfcfb8 to your computer and use it in GitHub Desktop.
################################################################################
# Nonblocking io for perl/socket (PDS)
################################################################################
sub set_block {
my $sock = shift;
return &set_nonblock($sock, 1);
}
sub set_nonblock {
my $sock = shift;
my $block = shift;
if ($^O eq 'MSWin32') {
my $f = 0x8004667e; # FIONBIO for windows
my $v = pack("L", $block ? 0 : 1);
ioctl($sock, $f, $v);
return;
}
my $flags = fcntl($sock, F_GETFL, 0);
if ($block) {
$flags &= ~O_NONBLOCK;
} else {
$flags |= O_NONBLOCK;
}
fcntl($sock, F_SETFL, $flags);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment