Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: remoting/host/chromoting_host_context.cc

Issue 891663005: Add blocking IO restriction on the network thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@it2me_host_dcheck
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/chromoting_host_context.h" 5 #include "remoting/host/chromoting_host_context.h"
6 6
7 #include "base/threading/thread_restrictions.h"
7 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
8 #include "remoting/base/auto_thread.h" 9 #include "remoting/base/auto_thread.h"
9 #include "remoting/base/url_request_context_getter.h" 10 #include "remoting/base/url_request_context_getter.h"
10 11
11 namespace remoting { 12 namespace remoting {
12 13
14 namespace {
15
16 void DisallowBlockingOperations() {
17 base::ThreadRestrictions::SetIOAllowed(false);
18 base::ThreadRestrictions::DisallowWaiting();
19 }
20
21 } // namespace
22
13 ChromotingHostContext::ChromotingHostContext( 23 ChromotingHostContext::ChromotingHostContext(
14 scoped_refptr<AutoThreadTaskRunner> ui_task_runner, 24 scoped_refptr<AutoThreadTaskRunner> ui_task_runner,
15 scoped_refptr<AutoThreadTaskRunner> audio_task_runner, 25 scoped_refptr<AutoThreadTaskRunner> audio_task_runner,
16 scoped_refptr<AutoThreadTaskRunner> file_task_runner, 26 scoped_refptr<AutoThreadTaskRunner> file_task_runner,
17 scoped_refptr<AutoThreadTaskRunner> input_task_runner, 27 scoped_refptr<AutoThreadTaskRunner> input_task_runner,
18 scoped_refptr<AutoThreadTaskRunner> network_task_runner, 28 scoped_refptr<AutoThreadTaskRunner> network_task_runner,
19 scoped_refptr<AutoThreadTaskRunner> video_capture_task_runner, 29 scoped_refptr<AutoThreadTaskRunner> video_capture_task_runner,
20 scoped_refptr<AutoThreadTaskRunner> video_encode_task_runner, 30 scoped_refptr<AutoThreadTaskRunner> video_encode_task_runner,
21 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) 31 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter)
22 : ui_task_runner_(ui_task_runner), 32 : ui_task_runner_(ui_task_runner),
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 "ChromotingAudioThread", ui_task_runner, base::MessageLoop::TYPE_UI, 99 "ChromotingAudioThread", ui_task_runner, base::MessageLoop::TYPE_UI,
90 AutoThread::COM_INIT_STA); 100 AutoThread::COM_INIT_STA);
91 #else // !defined(OS_WIN) 101 #else // !defined(OS_WIN)
92 scoped_refptr<AutoThreadTaskRunner> audio_task_runner = 102 scoped_refptr<AutoThreadTaskRunner> audio_task_runner =
93 AutoThread::CreateWithType("ChromotingAudioThread", ui_task_runner, 103 AutoThread::CreateWithType("ChromotingAudioThread", ui_task_runner,
94 base::MessageLoop::TYPE_IO); 104 base::MessageLoop::TYPE_IO);
95 #endif // !defined(OS_WIN) 105 #endif // !defined(OS_WIN)
96 scoped_refptr<AutoThreadTaskRunner> file_task_runner = 106 scoped_refptr<AutoThreadTaskRunner> file_task_runner =
97 AutoThread::CreateWithType("ChromotingFileThread", ui_task_runner, 107 AutoThread::CreateWithType("ChromotingFileThread", ui_task_runner,
98 base::MessageLoop::TYPE_IO); 108 base::MessageLoop::TYPE_IO);
109
99 scoped_refptr<AutoThreadTaskRunner> network_task_runner = 110 scoped_refptr<AutoThreadTaskRunner> network_task_runner =
100 AutoThread::CreateWithType("ChromotingNetworkThread", ui_task_runner, 111 AutoThread::CreateWithType("ChromotingNetworkThread", ui_task_runner,
101 base::MessageLoop::TYPE_IO); 112 base::MessageLoop::TYPE_IO);
113 network_task_runner->PostTask(FROM_HERE,
114 base::Bind(&DisallowBlockingOperations));
102 115
103 return make_scoped_ptr(new ChromotingHostContext( 116 return make_scoped_ptr(new ChromotingHostContext(
104 ui_task_runner, 117 ui_task_runner,
105 audio_task_runner, 118 audio_task_runner,
106 file_task_runner, 119 file_task_runner,
107 AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner, 120 AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner,
108 base::MessageLoop::TYPE_IO), 121 base::MessageLoop::TYPE_IO),
109 network_task_runner, 122 network_task_runner,
110 AutoThread::Create("ChromotingCaptureThread", ui_task_runner), 123 AutoThread::Create("ChromotingCaptureThread", ui_task_runner),
111 AutoThread::Create("ChromotingEncodeThread", ui_task_runner), 124 AutoThread::Create("ChromotingEncodeThread", ui_task_runner),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 base::MessageLoop::TYPE_IO), 169 base::MessageLoop::TYPE_IO),
157 WrapBrowserThread(content::BrowserThread::IO), // network_task_runner 170 WrapBrowserThread(content::BrowserThread::IO), // network_task_runner
158 ui_task_runner, // video_capture_task_runner 171 ui_task_runner, // video_capture_task_runner
159 AutoThread::CreateWithType("ChromotingEncodeThread", file_task_runner, 172 AutoThread::CreateWithType("ChromotingEncodeThread", file_task_runner,
160 base::MessageLoop::TYPE_IO), 173 base::MessageLoop::TYPE_IO),
161 url_request_context_getter)); 174 url_request_context_getter));
162 } 175 }
163 #endif // defined(OS_CHROMEOS) 176 #endif // defined(OS_CHROMEOS)
164 177
165 } // namespace remoting 178 } // namespace remoting
OLDNEW
« no previous file with comments | « no previous file | remoting/host/host_signaling_manager.h » ('j') | remoting/host/remoting_me2me_host.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698