| OLD | NEW | 
 | (Empty) | 
|   1 /* |  | 
|   2  * Copyright (C) 2008 Apple Inc. All rights reserved. |  | 
|   3  * |  | 
|   4  * Redistribution and use in source and binary forms, with or without |  | 
|   5  * modification, are permitted provided that the following conditions |  | 
|   6  * are met: |  | 
|   7  * |  | 
|   8  * 1.  Redistributions of source code must retain the above copyright |  | 
|   9  *     notice, this list of conditions and the following disclaimer. |  | 
|  10  * 2.  Redistributions in binary form must reproduce the above copyright |  | 
|  11  *     notice, this list of conditions and the following disclaimer in the |  | 
|  12  *     documentation and/or other materials provided with the distribution. |  | 
|  13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of |  | 
|  14  *     its contributors may be used to endorse or promote products derived |  | 
|  15  *     from this software without specific prior written permission. |  | 
|  16  * |  | 
|  17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |  | 
|  18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |  | 
|  19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |  | 
|  20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |  | 
|  21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |  | 
|  22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |  | 
|  23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |  | 
|  24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | 
|  25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |  | 
|  26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | 
|  27  */ |  | 
|  28 #ifndef Locker_h |  | 
|  29 #define Locker_h |  | 
|  30  |  | 
|  31 #include <wtf/Noncopyable.h> |  | 
|  32  |  | 
|  33 namespace WTF { |  | 
|  34  |  | 
|  35 template <typename T> class Locker { |  | 
|  36     WTF_MAKE_NONCOPYABLE(Locker); |  | 
|  37 public: |  | 
|  38     Locker(T& lockable) : m_lockable(lockable) { m_lockable.lock(); } |  | 
|  39     ~Locker() { m_lockable.unlock(); } |  | 
|  40 private: |  | 
|  41     T& m_lockable; |  | 
|  42 }; |  | 
|  43  |  | 
|  44 } |  | 
|  45  |  | 
|  46 using WTF::Locker; |  | 
|  47  |  | 
|  48 #endif |  | 
| OLD | NEW |