1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-13 12:58:17 +03:00

F #4809: Fix ns retries

This commit is contained in:
Ruben S. Montero 2017-06-22 21:38:31 +02:00
parent 4705043396
commit 15001cb139

View File

@ -65,6 +65,19 @@ extern "C" void * replication_thread(void *arg)
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
static void set_timeout(struct timespec& timeout, time_t nsec )
{
clock_gettime(CLOCK_REALTIME, &timeout);
timeout.tv_nsec += nsec;
while ( timeout.tv_nsec >= 1000000000 )
{
timeout.tv_sec += 1;
timeout.tv_nsec -= 1000000000;
}
}
void ReplicaThread::do_replication()
{
int rc;
@ -79,8 +92,7 @@ void ReplicaThread::do_replication()
{
struct timespec timeout;
timeout.tv_sec = time(NULL);
timeout.tv_nsec = retry_timeout;
set_timeout(timeout, retry_timeout);
if ( pthread_cond_timedwait(&cond, &mutex, &timeout) == ETIMEDOUT )
{