src/server/daemon/main.c

changeset 610
447e6d9ba8a4
parent 556
b036ccad4b49
child 619
4e2bac64c950
equal deleted inserted replaced
609:a655e6397663 610:447e6d9ba8a4
174 fds[1].fd = std_err[0]; 174 fds[1].fd = std_err[0];
175 fds[1].events = POLLIN; 175 fds[1].events = POLLIN;
176 176
177 int poll_fails = 0; 177 int poll_fails = 0;
178 for(;;) { 178 for(;;) {
179 if(poll(fds, 1, 1000000) < 0) { 179 if(poll(fds, 2, 1000000) < 0) {
180 if(errno == EINTR) { 180 if(errno == EINTR) {
181 continue; 181 continue;
182 } 182 }
183 log_ereport(LOG_FAILURE, "log thread poll failed: %s", strerror(errno)); 183 log_ereport(LOG_FAILURE, "log thread poll failed: %s", strerror(errno));
184 if(poll_fails++ > LOG_THREAD_MAX_POLL_FAILS) { 184 if(poll_fails++ > LOG_THREAD_MAX_POLL_FAILS) {
194 } 194 }
195 } 195 }
196 196
197 // check stderr 197 // check stderr
198 if(fds[1].revents & POLLIN) { 198 if(fds[1].revents & POLLIN) {
199 if(log_pipe("stderr", fds[0].fd, log_pipe_stderr_buf, &log_pipe_stderr_tmp_pos)) { 199 if(log_pipe("stderr", fds[1].fd, log_pipe_stderr_buf, &log_pipe_stderr_tmp_pos)) {
200 log_ereport(LOG_WARN, "log_pipe stderr failed"); 200 log_ereport(LOG_WARN, "log_pipe stderr failed");
201 break; 201 break;
202 } 202 }
203 } 203 }
204 } 204 }

mercurial