summaryrefslogtreecommitdiff
path: root/lib/Thread/Task.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Thread/Task.pm')
-rw-r--r--lib/Thread/Task.pm11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Thread/Task.pm b/lib/Thread/Task.pm
index 86a1387..5567805 100644
--- a/lib/Thread/Task.pm
+++ b/lib/Thread/Task.pm
@@ -102,9 +102,14 @@ class Thread::Task {
die "Can't update between different task classes";
}
for my $attr ($self->meta->get_all_attributes) {
- $attr->set_value($self,
- $attr->get_value($new_task)
- );
+ if ($attr->has_value($new_task)) {
+ $attr->set_value($self,
+ $attr->get_value($new_task)
+ );
+ }
+ else {
+ $attr->clear_value($self);
+ }
}
return;
}