line |
stmt |
code |
1
|
|
# Copyright 2021 SUSE LLC |
2
|
|
# SPDX-License-Identifier: GPL-2.0-or-later |
3
|
|
# |
4
|
|
# Helper class to use descriptive names for file descriptors within IO::Select |
5
|
|
|
6
|
|
use Mojo::Base -base, -signatures; |
7
|
38
|
use IO::Select; |
|
38
|
|
|
38
|
|
8
|
38
|
use Carp; |
|
38
|
|
|
38
|
|
9
|
38
|
|
|
38
|
|
|
38
|
|
10
|
|
|
11
|
29017
|
|
|
29017
|
|
|
29017
|
|
|
29017
|
|
12
|
|
my $fd_nr = fileno $fd // $fd; |
13
|
1349
|
if (!defined($name)) { |
|
1349
|
|
|
1349
|
|
|
1349
|
|
14
|
|
my ($package, $filename, $line) = caller; |
15
|
684
|
$name = sprintf('NamedIOSelect::add(%d) called at %s:%d', $fd_nr, $filename, $line); |
|
684
|
|
|
684
|
|
|
684
|
|
|
684
|
|
16
|
684
|
} |
17
|
684
|
|
18
|
1
|
$self->names->{$fd_nr} = $name; |
19
|
1
|
$self->select->add($fd); |
20
|
|
} |
21
|
|
|
22
|
684
|
my $fd_nr = fileno $fd // $fd; |
23
|
684
|
return $self->names->{$fd_nr} // "Unknown fd($fd_nr)"; |
24
|
|
} |
25
|
|
|
26
|
3
|
delete $self->names->{fileno $fd // $fd}; |
|
3
|
|
|
3
|
|
|
3
|
|
27
|
3
|
$self->select->remove($fd); |
28
|
3
|
} |
29
|
|
|
30
|
|
1; |