diff options
Diffstat (limited to 'lib/Thread/Task.pm')
-rw-r--r-- | lib/Thread/Task.pm | 11 |
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; } |