r51186 - in /trunk/libgearman-client-perl: CHANGES META.yml debian/changelog lib/Gearman/Client.pm lib/Gearman/Taskset.pm lib/Gearman/Util.pm

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Mon Jan 18 03:38:25 UTC 2010


Author: jawnsy-guest
Date: Mon Jan 18 03:38:18 2010
New Revision: 51186

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=51186
Log:
integrate another upstream release

Modified:
    trunk/libgearman-client-perl/CHANGES
    trunk/libgearman-client-perl/META.yml
    trunk/libgearman-client-perl/debian/changelog
    trunk/libgearman-client-perl/lib/Gearman/Client.pm
    trunk/libgearman-client-perl/lib/Gearman/Taskset.pm
    trunk/libgearman-client-perl/lib/Gearman/Util.pm

Modified: trunk/libgearman-client-perl/CHANGES
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/CHANGES?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/CHANGES (original)
+++ trunk/libgearman-client-perl/CHANGES Mon Jan 18 03:38:18 2010
@@ -1,3 +1,11 @@
+1.11 (2010-01-17)
+
+     -- Switch read_res_packet to use sysread with a large buffer and offsets. This improves
+        memory usage (sometimes drastically) and performance.
+
+     -- Fix from Martin Atkins, don't print() in the Gearman::Util code and close sockets
+        when you have an error of some kind (indicating we're out of sync)
+
 1.10 (2009-10-04)
 
      -- Make workers wake up periodically for a particular server to make sure they aren't

Modified: trunk/libgearman-client-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/META.yml?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/META.yml (original)
+++ trunk/libgearman-client-perl/META.yml Mon Jan 18 03:38:18 2010
@@ -1,7 +1,7 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         Gearman
-version:      1.10
+version:      1.11
 version_from: lib/Gearman/Client.pm
 installdirs:  site
 requires:

Modified: trunk/libgearman-client-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/debian/changelog?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/debian/changelog (original)
+++ trunk/libgearman-client-perl/debian/changelog Mon Jan 18 03:38:18 2010
@@ -1,4 +1,4 @@
-libgearman-client-perl (1.10-1) UNRELEASED; urgency=low
+libgearman-client-perl (1.11-1) UNRELEASED; urgency=low
 
   NOTE: fails to build when tested with a gearman-server
 
@@ -18,7 +18,7 @@
   * Refresh copyright information to DEP5 format
   * Add patch to fix POD errors
 
- -- Jonathan Yu <jawnsy at cpan.org>  Wed, 06 Jan 2010 09:36:17 -0500
+ -- Jonathan Yu <jawnsy at cpan.org>  Sun, 17 Jan 2010 22:45:25 -0500
 
 libgearman-client-perl (1.09-1) unstable; urgency=low
 

Modified: trunk/libgearman-client-perl/lib/Gearman/Client.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/lib/Gearman/Client.pm?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/lib/Gearman/Client.pm (original)
+++ trunk/libgearman-client-perl/lib/Gearman/Client.pm Mon Jan 18 03:38:18 2010
@@ -3,7 +3,7 @@
 package Gearman::Client;
 
 our $VERSION;
-$VERSION = '1.10';
+$VERSION = '1.11';
 
 use strict;
 use IO::Socket::INET;

Modified: trunk/libgearman-client-perl/lib/Gearman/Taskset.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/lib/Gearman/Taskset.pm?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/lib/Gearman/Taskset.pm (original)
+++ trunk/libgearman-client-perl/lib/Gearman/Taskset.pm Mon Jan 18 03:38:18 2010
@@ -208,7 +208,6 @@
         if (! $rv) {
             shift @{ $ts->{need_handle} };  # ditch it, it failed.
             # this will resubmit it if it failed.
-            print " INITIAL SUBMIT FAILED\n";
             return $task->fail;
         }
     }

Modified: trunk/libgearman-client-perl/lib/Gearman/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libgearman-client-perl/lib/Gearman/Util.pm?rev=51186&op=diff
==============================================================================
--- trunk/libgearman-client-perl/lib/Gearman/Util.pm (original)
+++ trunk/libgearman-client-perl/lib/Gearman/Util.pm Mon Jan 18 03:38:18 2010
@@ -89,6 +89,7 @@
 
     my $err = sub {
         my $code = shift;
+        $sock->close() if $sock->connected;
         $$err_ref = $code if ref $err_ref;
         return undef;
     };
@@ -104,19 +105,19 @@
     return $err->("malformed_magic") unless $magic eq "\0RES";
 
     if ($len) {
-        # Start off trying to read the whole buffer. Store the bits in an array
-        # one element for each read, then do a big join at the end. This minimizes
-        # the number of memory allocations we have to do.
         my $readlen = $len;
+        my $offset = 0;
         my $lim = 20 + int( $len / 2**10 );
-        my @buffers;
         for (my $i = 0; $readlen > 0 && $i < $lim; $i++) {
-            my $rv = sysread($sock, $buffers[$i], $readlen);
+            # Because we know the length of the data we need to read exactly, the
+            # most efficient way to do this in perl is with one giant buffer, and
+            # an appropriate offset passed to sysread.
+            my $rv = sysread($sock, $buf, $readlen, $offset);
             return $err->("short_body") unless $rv > 0;
             last unless $rv > 0;
             $readlen -= $rv;
+            $offset += $rv;
         }
-        $buf = join('', @buffers);
         return $err->("short_body") unless length($buf) == $len; 
     }
 




More information about the Pkg-perl-cvs-commits mailing list