CkIO: Don't try to forward zero-length data
authorPhil Miller <mille121@illinois.edu>
Sat, 20 Oct 2012 04:32:11 +0000 (23:32 -0500)
committerPhil Miller <mille121@illinois.edu>
Sat, 20 Oct 2012 04:33:41 +0000 (23:33 -0500)
src/libs/ck-libs/io/ckio.C

index f717d62a6e175bc5e31c06703e590c9634cb1b17..2a4df1fcf8a8ad3b486799cb91d655bf0f5c9c1a 100644 (file)
@@ -16,7 +16,7 @@ namespace Ck { namespace IO {
 
     void Manager::write(Token token, const char *data, size_t bytes, size_t offset) {
       Options &opts = files[token].opts;
 
     void Manager::write(Token token, const char *data, size_t bytes, size_t offset) {
       Options &opts = files[token].opts;
-      do {
+      while (bytes > 0) {
         size_t stripeIndex = offset / opts.peStripe;
         int peIndex = stripeIndex % opts.activePEs;
         int pe = opts.basePE + peIndex * opts.skipPEs;
         size_t stripeIndex = offset / opts.peStripe;
         int peIndex = stripeIndex % opts.activePEs;
         int pe = opts.basePE + peIndex * opts.skipPEs;
@@ -25,7 +25,7 @@ namespace Ck { namespace IO {
        data += bytesToSend;
        offset += bytesToSend;
        bytes -= bytesToSend;
        data += bytesToSend;
        offset += bytesToSend;
        bytes -= bytesToSend;
-      } while (bytes > 0);
+      }
     }
 
     void Manager::write_forwardData(Token token, const char *data, size_t bytes,
     }
 
     void Manager::write_forwardData(Token token, const char *data, size_t bytes,