X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTask.pm;h=434019825aadebcb8dee0ffa3146f67f2d492772;hb=87eef33eee0a92bf11aa4d4fcc061526f9176a50;hp=7e6baa203483f1be6593cbbc68c7fcc7e6a2dae7;hpb=b9a2ccdff15412db848e70befd3594426f6e2ff3;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Task.pm b/lib/ZOOM/IRSpy/Task.pm index 7e6baa2..4340198 100644 --- a/lib/ZOOM/IRSpy/Task.pm +++ b/lib/ZOOM/IRSpy/Task.pm @@ -1,4 +1,4 @@ -# $Id: Task.pm,v 1.5 2007-05-09 11:19:20 mike Exp $ +# $Id: Task.pm,v 1.7 2007-08-01 15:11:03 mike Exp $ package ZOOM::IRSpy::Task; @@ -6,6 +6,8 @@ use 5.008; use strict; use warnings; +use Scalar::Util; + =head1 NAME ZOOM::IRSpy::Task - base class for tasks in IRSpy @@ -34,7 +36,7 @@ sub new { my $class = shift(); my($conn, $udata, $options, %cb) = @_; - return bless { + my $this = bless { irspy => $conn->{irspy}, conn => $conn, udata => $udata, @@ -42,6 +44,11 @@ sub new { cb => \%cb, timeRegistered => time(), }, $class; + + #Scalar::Util::weaken($this->{irspy}); + #Scalar::Util::weaken($this->{udata}); + + return $this; } @@ -87,11 +94,11 @@ sub set_options { $value = "" if !defined $value; $this->conn()->log("irspy_debug", "$this setting option '$key' -> ", defined $value ? "'$value'" : "undefined"); + my $old = $this->conn()->option($key, $value); if ($persistent) { - print "deleting '*$key'
\n"; delete $this->{options}->{"*$key"} } else { - $this->{options}->{$key} = $this->conn()->option($key, $value); + $this->{options}->{$key} = $old; } } }