10f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines/*
20f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * Copyright (C) 2009 The Android Open Source Project
30f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines *
40f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
50f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * you may not use this file except in compliance with the License.
60f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * You may obtain a copy of the License at
70f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines *
80f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines *      http://www.apache.org/licenses/LICENSE-2.0
90f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines *
100f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * Unless required by applicable law or agreed to in writing, software
110f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
120f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * See the License for the specific language governing permissions and
140f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines * limitations under the License.
150f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines */
160f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
170f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#ifndef ANDROID_RS_MUTEX_H
180f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#define ANDROID_RS_MUTEX_H
190f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
200f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
210f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#include "rsUtils.h"
220f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
230f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesnamespace android {
240f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesnamespace renderscript {
250f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
260f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesclass Mutex {
270f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinespublic:
280f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    Mutex();
290f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    ~Mutex();
300f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
310f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    bool init();
320f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    bool lock();
330f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    bool unlock();
340f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
350f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesprotected:
360f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines    pthread_mutex_t mMutex;
370f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines};
380f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
390f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines}
400f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines}
410f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
420f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif
430f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
44