title: Qt's QProcess still thinks a process is running after it has exited
body: <p>I'm using QProcess to run the s3 program from <a href="https://s3.amazonaws.com/libs3.ischo.com/index.html" rel="nofollow">libs3</a>.</p>
  
  <pre><code>QString S3::runS3(const QStringList &amp;args, const QByteArray &amp;data)
  {
      QProcess s3;
  
      QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
      env.insert("S3_ACCESS_KEY_ID", "xxx");
      env.insert("S3_SECRET_ACCESS_KEY", "xxx");
      s3.setProcessEnvironment(env);
  
      s3.start("s3", args);
      if (!s3.waitForStarted())
      {
          qWarning() &lt;&lt; "Could not start the s3 process!";
          return QString();
      }
  
      if (data.size() &gt; 0)
      {
          s3.write(data);
          s3.closeWriteChannel();
      }
  
      if (!s3.waitForFinished())
      {
          qWarning() &lt;&lt; "The s3 process did not complete successfully";
          if (s3.error() == QProcess::Timedout)
          {
              qWarning() &lt;&lt; "The s3 process took too long to execute";
          }
  
          qWarning() &lt;&lt; QString(s3.readAllStandardOutput());
          qWarning() &lt;&lt; QString(s3.readAllStandardError());
          qWarning() &lt;&lt; s3.exitCode();
          qWarning() &lt;&lt; s3.exitStatus();
          qWarning() &lt;&lt; s3.pid();
  
          return QString();
      }
  
      return QString(s3.readAll());
  }
  </code></pre>
  
  <p>However, every time I run this code, the waitForFinished method waits for the full 30 seconds,  and I get this for output:</p>
  
  <pre><code>The s3 process did not complete successfully 
  The s3 process took too long to execute 
  "1474272 bytes remaining (1% complete) ...
  1457888 bytes remaining (2% complete) ...
  1441504 bytes remaining (3% complete) ...
  1425120 bytes remaining (4% complete) ...
  1408736 bytes remaining (5% complete) ...
  1392352 bytes remaining (6% complete) ...
  1375968 bytes remaining (7% complete) ...
  1359584 bytes remaining (8% complete) ...
  1343200 bytes remaining (9% complete) ...
  1326816 bytes remaining (10% complete) ...
  1310432 bytes remaining (12% complete) ...
  1294048 bytes remaining (13% complete) ...
  1277664 bytes remaining (14% complete) ...
  1261280 bytes remaining (15% complete) ...
  1244896 bytes remaining (16% complete) ...
  1228512 bytes remaining (17% complete) ...
  1212128 bytes remaining (18% complete) ...
  1195744 bytes remaining (19% complete) ...
  1179360 bytes remaining (20% complete) ...
  1162976 bytes remaining (21% complete) ...
  1146592 bytes remaining (23% complete) ...
  1130208 bytes remaining (24% complete) ...
  1113824 bytes remaining (25% complete) ...
  1097440 bytes remaining (26% complete) ...
  1081056 bytes remaining (27% complete) ...
  1064672 bytes remaining (28% complete) ...
  1048288 bytes remaining (29% complete) ...
  1031904 bytes remaining (30% complete) ...
  1015520 bytes remaining (31% complete) ...
  999136 bytes remaining (32% complete) ...
  982752 bytes remaining (34% complete) ...
  966368 bytes remaining (35% complete) ...
  949984 bytes remaining (36% complete) ...
  933600 bytes remaining (37% complete) ...
  917216 bytes remaining (38% complete) ...
  900832 bytes remaining (39% complete) ...
  884448 bytes remaining (40% complete) ...
  868064 bytes remaining (41% complete) ...
  851680 bytes remaining (42% complete) ...
  835296 bytes remaining (43% complete) ...
  818912 bytes remaining (45% complete) ...
  802528 bytes remaining (46% complete) ...
  786144 bytes remaining (47% complete) ...
  769760 bytes remaining (48% complete) ...
  753376 bytes remaining (49% complete) ...
  736992 bytes remaining (50% complete) ...
  720608 bytes remaining (51% complete) ...
  704224 bytes remaining (52% complete) ...
  687840 bytes remaining (53% complete) ...
  671456 bytes remaining (54% complete) ...
  655072 bytes remaining (56% complete) ...
  638688 bytes remaining (57% complete) ...
  622304 bytes remaining (58% complete) ...
  605920 bytes remaining (59% complete) ...
  589536 bytes remaining (60% complete) ...
  573152 bytes remaining (61% complete) ...
  556768 bytes remaining (62% complete) ...
  540384 bytes remaining (63% complete) ...
  524000 bytes remaining (64% complete) ...
  507616 bytes remaining (65% complete) ...
  491232 bytes remaining (67% complete) ...
  474848 bytes remaining (68% complete) ...
  458464 bytes remaining (69% complete) ...
  442080 bytes remaining (70% complete) ...
  425696 bytes remaining (71% complete) ...
  409312 bytes remaining (72% complete) ...
  392928 bytes remaining (73% complete) ...
  376544 bytes remaining (74% complete) ...
  360160 bytes remaining (75% complete) ...
  343776 bytes remaining (76% complete) ...
  327392 bytes remaining (78% complete) ...
  311008 bytes remaining (79% complete) ...
  294624 bytes remaining (80% complete) ...
  278240 bytes remaining (81% complete) ...
  261856 bytes remaining (82% complete) ...
  245472 bytes remaining (83% complete) ...
  229088 bytes remaining (84% complete) ...
  212704 bytes remaining (85% complete) ...
  196320 bytes remaining (86% complete) ...
  179936 bytes remaining (87% complete) ...
  163552 bytes remaining (89% complete) ...
  147168 bytes remaining (90% complete) ...
  130784 bytes remaining (91% complete) ...
  114400 bytes remaining (92% complete) ...
  98016 bytes remaining (93% complete) ...
  81632 bytes remaining (94% complete) ...
  65248 bytes remaining (95% complete) ...
  48864 bytes remaining (96% complete) ...
  32480 bytes remaining (97% complete) ...
  16096 bytes remaining (98% complete) ...
  " 
  "" 
  0 
  0 
  18506 
  QProcess: Destroyed while process is still running.
  </code></pre>
  
  <p>I can see that the S3 process is clearly not running in Activity Monitor.app before waitForFinished times out. What's going on?</p>