src/jdk.jpackage/share/native/library/common/PosixPlatform.cpp
branchJDK-8200758-branch
changeset 57052 92cdab03fb81
parent 57039 98d3963b0b7b
equal deleted inserted replaced
57040:6a4332753587 57052:92cdab03fb81
   201 
   201 
   202 bool PosixProcess::ReadOutput() {
   202 bool PosixProcess::ReadOutput() {
   203     bool result = false;
   203     bool result = false;
   204 
   204 
   205     if (FOutputHandle != 0 && IsRunning() == true) {
   205     if (FOutputHandle != 0 && IsRunning() == true) {
   206         char buffer[4096];
   206         char buffer[4096] = {0};
   207 
   207 
   208         ssize_t count = read(FOutputHandle, buffer, sizeof(buffer));
   208         ssize_t count = read(FOutputHandle, buffer, sizeof(buffer));
   209 
   209 
   210         if (count == -1) {
   210         if (count == -1) {
   211             if (errno == EINTR) {
   211             if (errno == EINTR) {
   215                 exit(1);
   215                 exit(1);
   216             }
   216             }
   217         } else if (count == 0) {
   217         } else if (count == 0) {
   218             // break;
   218             // break;
   219         } else {
   219         } else {
   220             if (buffer[count] == EOF) {
   220             if (buffer[count - 1] == EOF) {
   221                 buffer[count] = '\0';
   221                 buffer[count - 1] = '\0';
   222             }
   222             }
   223 
   223 
   224             std::list<TString> output = Helpers::StringToArray(buffer);
   224             std::list<TString> output = Helpers::StringToArray(buffer);
   225             FOutput.splice(FOutput.end(), output, output.begin(), output.end());
   225             FOutput.splice(FOutput.end(), output, output.begin(), output.end());
   226             result = true;
   226             result = true;