1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include "rsMutex.h" 18 19 namespace android { 20 namespace renderscript { 21 Mutex()22Mutex::Mutex() { 23 } 24 ~Mutex()25Mutex::~Mutex() { 26 pthread_mutex_destroy(&mMutex); 27 } 28 init()29bool Mutex::init() { 30 int status = pthread_mutex_init(&mMutex, nullptr); 31 if (status) { 32 ALOGE("Mutex::Mutex init failure"); 33 return false; 34 } 35 return true; 36 } 37 lock()38bool Mutex::lock() { 39 int status; 40 status = pthread_mutex_lock(&mMutex); 41 if (status) { 42 ALOGE("Mutex: error %i locking.", status); 43 return false; 44 } 45 return true; 46 } 47 unlock()48bool Mutex::unlock() { 49 int status; 50 status = pthread_mutex_unlock(&mMutex); 51 if (status) { 52 ALOGE("Mutex error %i unlocking.", status); 53 return false; 54 } 55 return true; 56 } 57 58 } // namespace renderscript 59 } // namespace android 60