Пример #1
0
static
void subscribeAvis (Elvin* avis,
                    void*  closure)
{
    avisSubscription* impl = (avisSubscription*) closure;

    impl->mAvisSubscription = elvin_subscribe(impl->mAvis, makeAvisSubject(impl->mSubject));

    if (impl->mAvisSubscription == NULL)
    {
        mama_log (MAMA_LOG_LEVEL_ERROR, "subscribeAvis(): "
                                        "Failed to subscribe to: %s", impl->mSubject);

        wsem_post (&impl->mCreateDestroySem);
    
        return;
    }

    elvin_subscription_add_listener (impl->mAvisSubscription, avis_callback, impl);

    mama_log (MAMA_LOG_LEVEL_FINER,
              "Made Avis subscription to: %s", impl->mSubject);

    wsem_post (&impl->mCreateDestroySem);
}
Пример #2
0
static void MAMACALLTYPE startCallback (mama_status status,
                                        mamaBridge  bridge,
                                        void*       closure)
{
    wsem_t* sem = (wsem_t*)closure;
    ASSERT_EQ (0, wsem_post (sem));
}
Пример #3
0
void
mamaTimeZone_cleanUp ()
{
    if (sThreadStarted)
    {
        sThreadStarted = 0;
        wsem_post (&sTzSem);
        wthread_join (sThread, NULL);
        wsem_destroy (&sTzSem);
    }
}
Пример #4
0
void* avisDispatchThread(void* closure)
{
    avisTransportBridge* transportBridge = (avisTransportBridge*) closure;

    while (1 == wInterlocked_read (&transportBridge->mDispatching))
    {
        elvin_poll (transportBridge->mAvis);

        if (ELVIN_ERROR_TIMEOUT == transportBridge->mAvis->error.code)
        {
            /* Timeout is acceptable and expected */
            elvin_error_reset (&transportBridge->mAvis->error);
        }
    }

    wsem_post (&transportBridge->mAvisDispatchSem);
    return NULL;
}