1410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com/* 2410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com * Copyright 2011 Google Inc. 3410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com * 4410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com * Use of this source code is governed by a BSD-style license that can be 5410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com * found in the LICENSE file. 6410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com */ 7f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "Benchmark.h" 8410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com#include "SkThread.h" 9410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com 10f168b86d7fafc5c20c87bebc6fd393cb17e120catfarinaclass MutexBench : public Benchmark { 11410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.compublic: 12644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org virtual bool isSuitableFor(Backend backend) SK_OVERRIDE { 13644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org return backend == kNonRendering_Backend; 14410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com } 15644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org 16410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.comprotected: 17410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com virtual const char* onGetName() { 18410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com return "mutex"; 19410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com } 20410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com 213361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org virtual void onDraw(const int loops, SkCanvas*) { 22c289743864e2ab926a95e617a5cd1d29b26d1825mtklein@google.com SK_DECLARE_STATIC_MUTEX(mu); 233361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org for (int i = 0; i < loops; i++) { 24c289743864e2ab926a95e617a5cd1d29b26d1825mtklein@google.com mu.acquire(); 25c289743864e2ab926a95e617a5cd1d29b26d1825mtklein@google.com mu.release(); 26410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com } 27410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com } 28410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com 29410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.comprivate: 30f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina typedef Benchmark INHERITED; 31410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com}; 32410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com 33410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com/////////////////////////////////////////////////////////////////////////////// 34410e9dc9aa3a79a19e708cad2f254a9e64891c80tomhudson@google.com 35410e6e80f00a6c660675c80904807a041c7b7d2amtklein@google.comDEF_BENCH( return new MutexBench(); ) 36