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:
parent
4705043396
commit
15001cb139
@ -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 )
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user