112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams/*
212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * Copyright (C) 2009 The Android Open Source Project
312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams *
412b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * you may not use this file except in compliance with the License.
612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * You may obtain a copy of the License at
712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams *
812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams *
1012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * Unless required by applicable law or agreed to in writing, software
1112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
1212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * See the License for the specific language governing permissions and
1412b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams * limitations under the License.
1512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams */
1612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
1712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#ifndef ANDROID_RS_MUTEX_H
1812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#define ANDROID_RS_MUTEX_H
1912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#include "rsUtils.h"
2212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsnamespace android {
2412b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsnamespace renderscript {
2512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsclass Mutex {
2712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samspublic:
2812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    Mutex();
2912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    ~Mutex();
3012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
3112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    bool init();
3212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    bool lock();
3312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    bool unlock();
3412b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
3512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsprotected:
3612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    pthread_mutex_t mMutex;
3712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams};
3812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
397974fc03e11f3a8dd40f794f3b33b4889483090cRahul Chaudhry} // namespace renderscript
407974fc03e11f3a8dd40f794f3b33b4889483090cRahul Chaudhry} // namespace android
4112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
4212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#endif
4312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
44