diff --git a/mutex.h b/mutex.h index 652384a157..d661628fda 100644 --- a/mutex.h +++ b/mutex.h @@ -49,7 +49,13 @@ typedef pthread_cond_t janus_condition; /*! \brief Janus condition wait */ #define janus_condition_wait(a, b) pthread_cond_wait(a, b); /*! \brief Janus condition timed wait */ -#define janus_condition_timedwait(a, b, c) pthread_cond_timedwait(a, b, c); +#define janus_condition_wait_until(a, b, c) { \ + const struct timespec jct = { \ + .tv_sec = c / G_USEC_PER_SEC, \ + .tv_nsec = (c % G_USEC_PER_SEC)*1000 \ + }; \ + pthread_cond_timedwait(a, b, &jct); \ +} /*! \brief Janus condition signal */ #define janus_condition_signal(a) pthread_cond_signal(a); /*! \brief Janus condition broadcast */ diff --git a/transports/janus_mqtt.c b/transports/janus_mqtt.c index b3ad74f735..547a056bab 100644 --- a/transports/janus_mqtt.c +++ b/transports/janus_mqtt.c @@ -1373,7 +1373,7 @@ void janus_mqtt_client_disconnect_failure_impl(void *context, int rc) { JANUS_LOG(LOG_ERR, "Can't disconnect from MQTT broker, return code: %d\n", rc); janus_mqtt_context *ctx = (janus_mqtt_context *)context; janus_mutex_lock(&ctx->disconnect.mutex); - g_cond_signal(&ctx->disconnect.cond); + janus_condition_signal(&ctx->disconnect.cond); janus_mutex_unlock(&ctx->disconnect.mutex); }