OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2015 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #include "Test.h" | |
9 #include "SkOncePtr.h" | |
10 #include "SkTaskGroup.h" | |
11 | |
12 SK_DECLARE_STATIC_ONCE_PTR(int, once); | |
13 | |
14 DEF_TEST(OncePtr, r) { | |
15 static SkAtomic<int> calls(0); | |
16 auto create = [&] { | |
17 calls.fetch_add(1); | |
18 return new int(5); | |
19 }; | |
20 | |
21 SkTaskGroup().batch(sk_num_cores()*4, [&](size_t) { | |
22 int* n = once.get(create); | |
23 REPORTER_ASSERT(r, *n == 5); | |
24 }); | |
25 REPORTER_ASSERT(r, calls.load() == 1); | |
26 } | |
OLD | NEW |