diff options
Diffstat (limited to 'chromeos/dbus/pipe_reader.cc')
-rw-r--r-- | chromeos/dbus/pipe_reader.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/chromeos/dbus/pipe_reader.cc b/chromeos/dbus/pipe_reader.cc index 547a974908..1e91d75b4f 100644 --- a/chromeos/dbus/pipe_reader.cc +++ b/chromeos/dbus/pipe_reader.cc @@ -7,13 +7,18 @@ #include "base/bind.h" #include "base/platform_file.h" #include "base/posix/eintr_wrapper.h" +#include "base/task_runner.h" +#include "net/base/file_stream.h" +#include "net/base/io_buffer.h" #include "net/base/net_errors.h" namespace chromeos { -PipeReader::PipeReader(PipeReader::IOCompleteCallback callback) +PipeReader::PipeReader(const scoped_refptr<base::TaskRunner>& task_runner, + const IOCompleteCallback& callback) : write_fd_(-1), io_buffer_(new net::IOBufferWithSize(4096)), + task_runner_(task_runner), callback_(callback), weak_ptr_factory_(this) {} @@ -42,7 +47,8 @@ bool PipeReader::StartIO() { // Pass ownership of pipe_fds[0] to data_stream_, which will will close it. data_stream_.reset(new net::FileStream( data_file_, - base::PLATFORM_FILE_READ | base::PLATFORM_FILE_ASYNC)); + base::PLATFORM_FILE_READ | base::PLATFORM_FILE_ASYNC, + task_runner_)); // Post an initial async read to setup data collection int rv = data_stream_->Read( @@ -75,7 +81,10 @@ void PipeReader::OnDataReady(int byte_count) { } PipeReaderForString::PipeReaderForString( - PipeReader::IOCompleteCallback callback) : PipeReader(callback) {} + const scoped_refptr<base::TaskRunner>& task_runner, + const IOCompleteCallback& callback) + : PipeReader(task_runner, callback) { +} void PipeReaderForString::AcceptData(const char *data, int byte_count) { data_.append(data, byte_count); |