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

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: thakis comment, renamed LAZY_INSTANCE_INITIALIZER 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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 switches::kDisableLogging, 554 switches::kDisableLogging,
555 switches::kEnableGPUServiceLogging, 555 switches::kEnableGPUServiceLogging,
556 switches::kEnableLogging, 556 switches::kEnableLogging,
557 #if defined(OS_MACOSX) 557 #if defined(OS_MACOSX)
558 switches::kEnableSandboxLogging, 558 switches::kEnableSandboxLogging,
559 #endif 559 #endif
560 switches::kGpuNoContextLost, 560 switches::kGpuNoContextLost,
561 switches::kGpuStartupDialog, 561 switches::kGpuStartupDialog,
562 switches::kLoggingLevel, 562 switches::kLoggingLevel,
563 switches::kNoSandbox, 563 switches::kNoSandbox,
564 switches::kTraceStartup,
565 }; 564 };
566 cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames, 565 cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
567 arraysize(kSwitchNames)); 566 arraysize(kSwitchNames));
568 567
569 // If --ignore-gpu-blacklist is passed in, don't send in crash reports 568 // If --ignore-gpu-blacklist is passed in, don't send in crash reports
570 // because GPU is expected to be unreliable. 569 // because GPU is expected to be unreliable.
571 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) && 570 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) &&
572 !cmd_line->HasSwitch(switches::kDisableBreakpad)) 571 !cmd_line->HasSwitch(switches::kDisableBreakpad))
573 cmd_line->AppendSwitch(switches::kDisableBreakpad); 572 cmd_line->AppendSwitch(switches::kDisableBreakpad);
574 573
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 scoped_ptr<EstablishChannelCallback> wrapped_callback(callback); 611 scoped_ptr<EstablishChannelCallback> wrapped_callback(callback);
613 wrapped_callback->Run(channel_handle, renderer_process_for_gpu, gpu_info); 612 wrapped_callback->Run(channel_handle, renderer_process_for_gpu, gpu_info);
614 } 613 }
615 614
616 void GpuProcessHost::CreateCommandBufferError( 615 void GpuProcessHost::CreateCommandBufferError(
617 CreateCommandBufferCallback* callback, int32 route_id) { 616 CreateCommandBufferCallback* callback, int32 route_id) {
618 scoped_ptr<GpuProcessHost::CreateCommandBufferCallback> 617 scoped_ptr<GpuProcessHost::CreateCommandBufferCallback>
619 wrapped_callback(callback); 618 wrapped_callback(callback);
620 callback->Run(route_id); 619 callback->Run(route_id);
621 } 620 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698