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

Side by Side Diff: content/browser/gpu/gpu_process_host.cc

Issue 8491043: Allow linker initialization of lazy instance (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments + rebase Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/browser/gpu/gpu_process_host.h" 5 #include "content/browser/gpu/gpu_process_host.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 enum GPUProcessLifetimeEvent { 42 enum GPUProcessLifetimeEvent {
43 LAUNCHED, 43 LAUNCHED,
44 DIED_FIRST_TIME, 44 DIED_FIRST_TIME,
45 DIED_SECOND_TIME, 45 DIED_SECOND_TIME,
46 DIED_THIRD_TIME, 46 DIED_THIRD_TIME,
47 DIED_FOURTH_TIME, 47 DIED_FOURTH_TIME,
48 GPU_PROCESS_LIFETIME_EVENT_MAX 48 GPU_PROCESS_LIFETIME_EVENT_MAX
49 }; 49 };
50 50
51 // A global map from GPU process host ID to GpuProcessHost. 51 // A global map from GPU process host ID to GpuProcessHost.
52 static base::LazyInstance<IDMap<GpuProcessHost> > g_hosts_by_id( 52 static base::LazyInstance<IDMap<GpuProcessHost> > g_hosts_by_id =
53 base::LINKER_INITIALIZED); 53 LAZY_INSTANCE_INITIALIZER;
54 54
55 // Number of times the gpu process has crashed in the current browser session. 55 // Number of times the gpu process has crashed in the current browser session.
56 static int g_gpu_crash_count = 0; 56 static int g_gpu_crash_count = 0;
57 57
58 // Maximum number of times the gpu process is allowed to crash in a session. 58 // Maximum number of times the gpu process is allowed to crash in a session.
59 // Once this limit is reached, any request to launch the gpu process will fail. 59 // Once this limit is reached, any request to launch the gpu process will fail.
60 static const int kGpuMaxCrashCount = 3; 60 static const int kGpuMaxCrashCount = 3;
61 61
62 int g_last_host_id = 0; 62 int g_last_host_id = 0;
63 63
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 switches::kDisableLogging, 586 switches::kDisableLogging,
587 switches::kEnableGPUServiceLogging, 587 switches::kEnableGPUServiceLogging,
588 switches::kEnableLogging, 588 switches::kEnableLogging,
589 #if defined(OS_MACOSX) 589 #if defined(OS_MACOSX)
590 switches::kEnableSandboxLogging, 590 switches::kEnableSandboxLogging,
591 #endif 591 #endif
592 switches::kGpuNoContextLost, 592 switches::kGpuNoContextLost,
593 switches::kGpuStartupDialog, 593 switches::kGpuStartupDialog,
594 switches::kLoggingLevel, 594 switches::kLoggingLevel,
595 switches::kNoSandbox, 595 switches::kNoSandbox,
596 switches::kTraceStartup,
597 }; 596 };
598 cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames, 597 cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
599 arraysize(kSwitchNames)); 598 arraysize(kSwitchNames));
600 599
601 // If --ignore-gpu-blacklist is passed in, don't send in crash reports 600 // If --ignore-gpu-blacklist is passed in, don't send in crash reports
602 // because GPU is expected to be unreliable. 601 // because GPU is expected to be unreliable.
603 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) && 602 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) &&
604 !cmd_line->HasSwitch(switches::kDisableBreakpad)) 603 !cmd_line->HasSwitch(switches::kDisableBreakpad))
605 cmd_line->AppendSwitch(switches::kDisableBreakpad); 604 cmd_line->AppendSwitch(switches::kDisableBreakpad);
606 605
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 scoped_ptr<EstablishChannelCallback> wrapped_callback(callback); 647 scoped_ptr<EstablishChannelCallback> wrapped_callback(callback);
649 wrapped_callback->Run(channel_handle, renderer_process_for_gpu, gpu_info); 648 wrapped_callback->Run(channel_handle, renderer_process_for_gpu, gpu_info);
650 } 649 }
651 650
652 void GpuProcessHost::CreateCommandBufferError( 651 void GpuProcessHost::CreateCommandBufferError(
653 CreateCommandBufferCallback* callback, int32 route_id) { 652 CreateCommandBufferCallback* callback, int32 route_id) {
654 scoped_ptr<GpuProcessHost::CreateCommandBufferCallback> 653 scoped_ptr<GpuProcessHost::CreateCommandBufferCallback>
655 wrapped_callback(callback); 654 wrapped_callback(callback);
656 callback->Run(route_id); 655 callback->Run(route_id);
657 } 656 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698