Re: Gtk::io patch
- From: Paolo Molaro <lupus ximian com>
- To: gtk-perl-list gnome org
- Subject: Re: Gtk::io patch
- Date: Sun, 15 Jul 2001 22:52:24 +0200
On 07/13/01 Jim Edwards wrote:
Paolo Molaro wrote:
timeout is best handled with a sub timeout {} as described in the
IO::Socket manpage (ie a setter/getter method). This means that
once you created an IO::Socket::INET, for example, and rebless it to
Gtk::io::INET, you can just use:
$socket->timeout (NEW_TIMEOUT);
But this doesn´t seem to work with Gtk::io, the timeout in _sweeper is independent of the IO::Socket
timeout .
Gtk::io works this way: you create your usual socket, say IO::Socket::INET,
and re-bless the reference to the proper Gtk::io::* package:
my $socket = IO::Socket::INET->new (...);
bless $socket, 'Gtk::io::INET';
Now, look at @Gtk::io::INET::ISA :
@ISA = qw(Gtk::io IO::Socket::INET);
So, if you create a timeout method in Gtk::io, it is found before
the one in IO::Socket. If the method is simply a wrapper for setting
the existing $timeout variable, it will be effectively a global change,
but Gtk::io can easily be reworked to use a per-socket timeout.
To make it work per-socket, just use $socket->timeout in the sweeper
routine (note that it works with fds, now, so it would need some
refactoring).
I would be open to making the two mechanisms work together. Attached is another patch for io.pm that
you may find a little more to your liking. But I´ve been playing with IO::Socket::timeout for a couple of
hours now and
I cannot make anything timeout through that mechanism. This patch doesn´t so much work with it as override
it.
Either use and change the current $timeout scalar (ignoring the
IO::Socket one) or refactor the sweeper func to access the timeout
from IO::Socket. The first option is the easy one, though not a
complete solution.
What do you think? (oh and have a nice weekend)
Well, it's a nice weekend, especially when next week is also vacation time:-)
lupus
--
-----------------------------------------------------------------
lupus debian org debian/rules
lupus ximian com Monkeys do it better
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]