// Add the event
QDateTime startTime(QDateTime::currentDateTimeUtc());
int newEventID(-1);
+ int currentBackoffInMillisecs(5);
while(((newEventID = rtcom_el_add_event_full(el, revent, rheaders, rattachments, &error)) == -1)
- && startTime.msecsTo(QDateTime::currentDateTimeUtc()) < 1000)
+ && startTime.msecsTo(QDateTime::currentDateTimeUtc()) < 10000)
{
if(error != NULL)
{
qDebug() << "err: " << error->message;
- qDebug() << *revent << "\n";
g_error_free(error);
error = NULL;
}
mutex.lock();
QWaitCondition waitCondition;
- waitCondition.wait(&mutex, 5);
+ waitCondition.wait(&mutex, currentBackoffInMillisecs);
mutex.unlock();
+
+ // Exponential backoff...
+ currentBackoffInMillisecs *= 2;
}
if(-1 == newEventID)
{
+ qDebug() << "Unable to insert event due to error.";
+ qDebug() << *revent << "\n";
+ }
+ else
+ {
qDebug() << "new id: " << newEventID;
InsertedIDs().append(newEventID);
}
- else
- qDebug() << "Unable to insert event due to error.";
// Release the attachments
g_list_foreach (rattachments, (GFunc) rtcom_el_free_attachment, NULL);