Lines Matching full:record
117 void Subprocess::OnStdoutReady(SubprocessRecord* record) {
124 record->stdout_fd, buf, arraysize(buf), &bytes_read, &eof);
125 record->stdout.append(buf, bytes_read);
129 MessageLoop::current()->CancelTask(record->stdout_task_id);
130 record->stdout_task_id = MessageLoop::kTaskIdNull;
140 SubprocessRecord* record = pid_record->second.get();
143 OnStdoutReady(record);
145 MessageLoop::current()->CancelTask(record->stdout_task_id);
146 record->stdout_task_id = MessageLoop::kTaskIdNull;
155 if (!record->stdout.empty()) {
156 LOG(INFO) << "Subprocess output:\n" << record->stdout;
158 if (!record->callback.is_null()) {
159 record->callback.Run(info.si_status, record->stdout);
165 record->proc.Release();
166 record->proc.Reset(0);
180 unique_ptr<SubprocessRecord> record(new SubprocessRecord(callback));
182 if (!LaunchProcess(cmd, flags, output_pipes, &record->proc)) {
187 pid_t pid = record->proc.pid();
192 record->stdout_fd = record->proc.GetPipe(STDOUT_FILENO);
194 int fd_flags = fcntl(record->stdout_fd, F_GETFL, 0) | O_NONBLOCK;
195 if (HANDLE_EINTR(fcntl(record->stdout_fd, F_SETFL, fd_flags)) < 0) {
197 << record->stdout_fd << ".";
200 record->stdout_task_id = MessageLoop::current()->WatchFileDescriptor(
202 record->stdout_fd,
205 base::Bind(&Subprocess::OnStdoutReady, record.get()));
207 subprocess_records_[pid].reset(record.release());