Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2662bf9 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "libutils Condition are now PRIVATE by default"

parents 9f3168b3 a729f97e
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ inline thread_id_t getThreadId() {
class Mutex {
public:
    enum {
        NORMAL = 0,
        PRIVATE = 0,
        SHARED = 1
    };
    
@@ -305,7 +305,13 @@ typedef Mutex::Autolock AutoMutex;
 */
class Condition {
public:
    enum {
        PRIVATE = 0,
        SHARED = 1
    };

    Condition();
    Condition(int type);
    ~Condition();
    // Wait on the condition variable.  Lock the mutex before calling.
    status_t wait(Mutex& mutex);
@@ -329,6 +335,17 @@ private:
inline Condition::Condition() {
    pthread_cond_init(&mCond, NULL);
}
inline Condition::Condition(int type) {
    if (type == SHARED) {
        pthread_condattr_t attr;
        pthread_condattr_init(&attr);
        pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
        pthread_cond_init(&mCond, &attr);
        pthread_condattr_destroy(&attr);
    } else {
        pthread_cond_init(&mCond, NULL);
    }
}
inline Condition::~Condition() {
    pthread_cond_destroy(&mCond);
}
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ namespace android {
// ----------------------------------------------------------------------------

SharedClient::SharedClient()
    : lock(Mutex::SHARED)
    : lock(Mutex::SHARED), cv(Condition::SHARED)
{
}

+4 −2
Original line number Diff line number Diff line
@@ -983,8 +983,10 @@ void AudioTrack::AudioTrackThread::onFirstRef()
// =========================================================================

audio_track_cblk_t::audio_track_cblk_t()
    : lock(Mutex::SHARED), user(0), server(0), userBase(0), serverBase(0), buffers(0), frameCount(0),
    loopStart(UINT_MAX), loopEnd(UINT_MAX), loopCount(0), volumeLR(0), flowControlFlag(1), forceReady(0)
    : lock(Mutex::SHARED), cv(Condition::SHARED), user(0), server(0),
    userBase(0), serverBase(0), buffers(0), frameCount(0),
    loopStart(UINT_MAX), loopEnd(UINT_MAX), loopCount(0), volumeLR(0),
    flowControlFlag(1), forceReady(0)
{
}