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_SIGNAL_H
1812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#define ANDROID_RS_SIGNAL_H
1912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#include "rsUtils.h"
2212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsnamespace android {
2412b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsnamespace renderscript {
2512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
2612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsclass Signal {
2712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samspublic:
2812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    Signal();
2912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    ~Signal();
3012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
3112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    bool init();
3212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
3312b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    void set();
34e0aab4a8ff1cffd8cfaedc2623db94072549e0e5Jason Sams
354698e2bec54a094e5c73936b9cf3db9d3c0b87ccElliott Hughes    void wait();
3612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
3712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Samsprotected:
3812b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    bool mSet;
3912b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    pthread_mutex_t mMutex;
4012b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams    pthread_cond_t mCondition;
4112b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams};
4212b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
437974fc03e11f3a8dd40f794f3b33b4889483090cRahul Chaudhry} // namespace renderscript
447974fc03e11f3a8dd40f794f3b33b4889483090cRahul Chaudhry} // namespace android
4512b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
4612b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams#endif
4712b14ae9fa34f4fd0bf21a2a4ac95a4864248fe9Jason Sams
48