F #4809: Fix ns retries

This commit is contained in:
Ruben S. Montero committed 2017-06-22 21:38:31 +02:00
1 parent 4705043396
commit 15001cb139
1 file changed
+14 -2
+14 -2
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 )
{