if (ret > 0) {
file->log->dotlock_count++;
file->locked = TRUE;
+ file->lock_created = time(NULL);
return 0;
}
if (ret < 0) {
&file->file_lock);
if (ret > 0) {
file->locked = TRUE;
+ file->lock_created = time(NULL);
return 0;
}
if (ret < 0) {
void mail_transaction_log_file_unlock(struct mail_transaction_log_file *file)
{
+ unsigned int lock_time;
+
if (!file->locked)
return;
if (MAIL_TRANSACTION_LOG_FILE_IN_MEMORY(file))
return;
+ lock_time = time(NULL) - file->lock_created;
+ if (lock_time >= MAIL_TRANSCATION_LOG_LOCK_TIMEOUT) {
+ i_warning("Transaction log file %s was locked for %u seconds",
+ file->filepath, lock_time);
+ }
+
if (file->log->index->lock_method == FILE_LOCK_METHOD_DOTLOCK) {
mail_transaction_log_file_undotlock(file);
return;