| Index: src/core/SkSemaphore.h
|
| diff --git a/src/core/SkSemaphore.h b/src/core/SkSemaphore.h
|
| deleted file mode 100644
|
| index 5f4c2968a77aed4a061c2b8e4347bc7567d20813..0000000000000000000000000000000000000000
|
| --- a/src/core/SkSemaphore.h
|
| +++ /dev/null
|
| @@ -1,55 +0,0 @@
|
| -/*
|
| - * Copyright 2015 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#ifndef SkSemaphore_DEFINED
|
| -#define SkSemaphore_DEFINED
|
| -
|
| -#include "SkTypes.h"
|
| -#include "SkAtomics.h"
|
| -
|
| -/**
|
| - * SkSemaphore is a fast mostly-user-space semaphore.
|
| - *
|
| - * A semaphore is logically an atomic integer with a few special properties:
|
| - * - The integer always starts at 0.
|
| - * - You can only increment or decrement it, never read or write it.
|
| - * - Increment is spelled 'signal()'; decrement is spelled 'wait()'.
|
| - * - If a call to wait() decrements the counter to <= 0,
|
| - * the calling thread sleeps until another thread signal()s it back above 0.
|
| - */
|
| -class SkSemaphore : SkNoncopyable {
|
| -public:
|
| - // Initializes the counter to 0.
|
| - // (Though all current implementations could start from an arbitrary value.)
|
| - SkSemaphore();
|
| - ~SkSemaphore();
|
| -
|
| - // Increment the counter N times.
|
| - // Generally it's better to call signal(N) instead of signal() N times.
|
| - void signal(int N = 1);
|
| -
|
| - // Decrement the counter by 1,
|
| - // then if the counter is <= 0, sleep this thread until the counter is > 0.
|
| - void wait();
|
| -
|
| -private:
|
| - // This implementation follows the general strategy of
|
| - // 'A Lightweight Semaphore with Partial Spinning'
|
| - // found here
|
| - // http://preshing.com/20150316/semaphores-are-surprisingly-versatile/
|
| - // That article (and entire blog) are very much worth reading.
|
| - //
|
| - // We wrap an OS-provided semaphore with a user-space atomic counter that
|
| - // lets us avoid interacting with the OS semaphore unless strictly required:
|
| - // moving the count from >0 to <=0 or vice-versa, i.e. sleeping or waking threads.
|
| - struct OSSemaphore;
|
| -
|
| - SkAtomic<int> fCount;
|
| - OSSemaphore* fOSSemaphore;
|
| -};
|
| -
|
| -#endif//SkSemaphore_DEFINED
|
|
|