aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkThreadPriv.h
blob: ab40731dc0997f411ec1ee267abf2bb692275c8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
 * Copyright 2014 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkThreadPriv_DEFINED
#define SkThreadPriv_DEFINED

#include "SkTypes.h"

// SK_ATOMICS_PLATFORM_H must provide inline implementations for the following declarations.

/** Atomic compare and set, for pointers.
 *  If *addr == before, set *addr to after.  Always returns previous value of *addr.
 *  This must issue a release barrier on success, acquire on failure, and always a compiler barrier.
 */
static void* sk_atomic_cas(void** addr, void* before, void* after);

#ifdef GOOGLE3
    #include "SkAtomics_sync.h"
#else
    #include SK_ATOMICS_PLATFORM_H
#endif

#endif//SkThreadPriv_DEFINED