Hello community,

here is the log from the commit of package perl-Minion for openSUSE:Factory 
checked in at 2019-12-24 14:30:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Minion (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Minion.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Minion"

Tue Dec 24 14:30:15 2019 rev:53 rq:759026 version:10.02

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Minion/perl-Minion.changes  2019-12-17 
16:54:42.497343159 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Minion.new.6675/perl-Minion.changes        
2019-12-24 14:30:22.606587757 +0100
@@ -1,0 +2,12 @@
+Sat Dec 21 03:09:18 UTC 2019 -  <timueller+p...@suse.de>
+
+- updated to 10.02
+   see /usr/share/doc/packages/perl-Minion/Changes
+
+  10.02  2019-12-20
+    - Fixed QUIT signal in Minion::Worker.
+    - Fixed stop remote control command.
+    - Fixed a problem where Minion::Worker was unable to deal with immediately
+      restarted jobs.
+
+-------------------------------------------------------------------

Old:
----
  Minion-10.01.tar.gz

New:
----
  Minion-10.02.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Minion.spec ++++++
--- /var/tmp/diff_new_pack.dvE70u/_old  2019-12-24 14:30:23.502588191 +0100
+++ /var/tmp/diff_new_pack.dvE70u/_new  2019-12-24 14:30:23.510588195 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Minion
-Version:        10.01
+Version:        10.02
 Release:        0
 %define cpan_name Minion
 Summary:        Job queue

++++++ Minion-10.01.tar.gz -> Minion-10.02.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Minion-10.01/Changes new/Minion-10.02/Changes
--- old/Minion-10.01/Changes    2019-12-16 13:00:33.000000000 +0100
+++ new/Minion-10.02/Changes    2019-12-20 20:33:10.000000000 +0100
@@ -1,6 +1,12 @@
 
+10.02  2019-12-20
+  - Fixed QUIT signal in Minion::Worker.
+  - Fixed stop remote control command.
+  - Fixed a problem where Minion::Worker was unable to deal with immediately
+    restarted jobs.
+
 10.01  2019-12-16
-  - Fixed an unlock concurrency issue in Minion::Backend::Pg.
+  - Fixed an unlock concurrency issue in Minion::Backend::Pg. (andrii-suse)
 
 10.0  2019-11-15
   - Removed PostgreSQL migrations older than 2 years, that means you need to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Minion-10.01/META.json new/Minion-10.02/META.json
--- old/Minion-10.01/META.json  2019-12-16 13:17:32.000000000 +0100
+++ new/Minion-10.02/META.json  2019-12-20 21:16:46.000000000 +0100
@@ -4,7 +4,7 @@
       "Sebastian Riedel <s...@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.38, CPAN::Meta::Converter 
version 2.150010",
+   "generated_by" : "ExtUtils::MakeMaker version 7.42, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "artistic_2"
    ],
@@ -54,6 +54,6 @@
       },
       "x_IRC" : "irc://irc.freenode.net/#mojo"
    },
-   "version" : "10.01",
+   "version" : "10.02",
    "x_serialization_backend" : "JSON::PP version 4.04"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Minion-10.01/META.yml new/Minion-10.02/META.yml
--- old/Minion-10.01/META.yml   2019-12-16 13:17:32.000000000 +0100
+++ new/Minion-10.02/META.yml   2019-12-20 21:16:46.000000000 +0100
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.38, CPAN::Meta::Converter version 
2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.42, CPAN::Meta::Converter version 
2.150010'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -27,5 +27,5 @@
   homepage: https://mojolicious.org
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/mojolicious/minion.git
-version: '10.01'
+version: '10.02'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Minion-10.01/lib/Minion/Worker.pm 
new/Minion-10.02/lib/Minion/Worker.pm
--- old/Minion-10.01/lib/Minion/Worker.pm       2019-12-16 12:46:50.000000000 
+0100
+++ new/Minion-10.02/lib/Minion/Worker.pm       2019-12-20 20:37:12.000000000 
+0100
@@ -69,23 +69,20 @@
   $status->{repair_interval} //= 21600;
   $status->{repair_interval} -= int rand $status->{repair_interval} / 2;
 
-  local $SIG{CHLD} = sub { };
-  local $SIG{INT} = local $SIG{TERM} = sub { $self->{finished}++ };
-  local $SIG{QUIT}
-    = sub { ++$self->{finished} and kill 'KILL', keys %{$self->{jobs}} };
+  local $SIG{CHLD} = sub                    { };
+  local $SIG{INT}  = local $SIG{TERM} = sub { $self->{finished}++ };
+  local $SIG{QUIT} = sub {
+    ++$self->{finished} and kill 'KILL', map { $_->pid } @{$self->{jobs}};
+  };
 
   # Remote control commands need to validate arguments carefully
   my $commands = $self->commands;
-  my $kill     = sub {
-    return unless grep { ($_[1] // '') eq $_ } qw(INT KILL USR1 USR2);
-    $self->{jobs}{$_[2]}->kill($_[1]) if $self->{jobs}{$_[2] // ''};
-  };
   local $commands->{jobs}
     = sub { $status->{jobs} = $_[1] if ($_[1] // '') =~ /^\d+$/ };
-  local $commands->{kill} = $kill;
-  local $commands->{stop} = sub { $kill->('KILL', $_[1]) };
+  local $commands->{kill} = \&_kill;
+  local $commands->{stop} = sub { $self->_kill('KILL', $_[1]) };
 
-  eval { $self->_work until $self->{finished} && !keys %{$self->{jobs}} };
+  eval { $self->_work until $self->{finished} && !@{$self->{jobs}} };
   my $err = $@;
   $self->unregister;
   croak $err if $err;
@@ -97,6 +94,12 @@
   return $self;
 }
 
+sub _kill {
+  my ($self, $signal, $id) = (shift, shift // '', shift // '');
+  return unless grep         { $signal eq $_ } qw(INT KILL USR1 USR2);
+  $_->kill($signal) for grep { $_->id eq $id } @{$self->{jobs}};
+}
+
 sub _work {
   my $self = shift;
 
@@ -119,18 +122,16 @@
   }
 
   # Check if jobs are finished
-  my $jobs = $self->{jobs} ||= {};
-  $jobs->{$_}->is_finished and ++$status->{performed} and delete $jobs->{$_}
-    for keys %$jobs;
+  my $jobs = $self->{jobs} ||= [];
+  @$jobs = map { $_->is_finished && ++$status->{performed} ? () : $_ } @$jobs;
 
   # Job limit has been reached or worker is stopping
-  return $self->emit('busy')
-    if ($status->{jobs} <= keys %$jobs) || $self->{finished};
+  return $self->emit('busy') if $status->{jobs} <= @$jobs || $self->{finished};
 
   # Try to get more jobs
   my ($max, $queues) = @{$status}{qw(dequeue_timeout queues)};
   my $job = $self->emit('wait')->dequeue($max => {queues => $queues});
-  $jobs->{$job->id} = $job->start if $job;
+  push @$jobs, $job->start if $job;
 }
 
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Minion-10.01/lib/Minion.pm 
new/Minion-10.02/lib/Minion.pm
--- old/Minion-10.01/lib/Minion.pm      2019-12-16 12:46:50.000000000 +0100
+++ new/Minion-10.02/lib/Minion.pm      2019-12-20 01:56:53.000000000 +0100
@@ -22,7 +22,7 @@
 has remove_after  => 172800;
 has tasks         => sub { {} };
 
-our $VERSION = '10.01';
+our $VERSION = '10.02';
 
 sub add_task { ($_[0]->tasks->{$_[1]} = $_[2]) and return $_[0] }
 
@@ -954,6 +954,8 @@
 
 Andrey Khozov
 
+Andrii Nikitin
+
 Brian Medley
 
 Franz Skale


Reply via email to