[brasero] Fix #593829 - Brasero gets stuck in a loop at "Getting size" while burning another session on a mul



commit 1a40ccebd86858f198320f866da9d4f5f2018331
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Sat Sep 5 14:44:21 2009 +0200

    Fix #593829 -  Brasero gets stuck in a loop at "Getting size" while burning another session on a multi-session disk
    we tested whether the medium could be used exclusively _before_ unmounting which usually caused a failure when the medium had data and was automatically mounted with nautilus

 libbrasero-burn/brasero-burn.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/libbrasero-burn/brasero-burn.c b/libbrasero-burn/brasero-burn.c
index e3710e4..60a9ff3 100644
--- a/libbrasero-burn/brasero-burn.c
+++ b/libbrasero-burn/brasero-burn.c
@@ -1552,16 +1552,6 @@ brasero_burn_run_recorder (BraseroBurn *burn, GError **error)
 	burner = brasero_burn_session_get_burner (priv->session);
 	burnt_medium = brasero_drive_get_medium (burner);
 
-	/* before we start let's see if that drive can be used exclusively.
-	 * Of course, it's not really safe since a process could take a lock
-	 * just after us but at least it'll give some time to HAL and friends
-	 * to finish what they're doing. 
-	 * This was done because more than often backends wouldn't be able to 
-	 * get a lock on a medium after a simulation. */
-	result = brasero_burn_can_use_drive_exclusively (burn, burner);
-	if (result != BRASERO_BURN_OK)
-		return result;
-
 start:
 
 	/* this is just in case */
@@ -1589,6 +1579,16 @@ start:
 		return BRASERO_BURN_ERR;
 	}
 
+	/* before we start let's see if that drive can be used exclusively.
+	 * Of course, it's not really safe since a process could take a lock
+	 * just after us but at least it'll give some time to HAL and friends
+	 * to finish what they're doing. 
+	 * This was done because more than often backends wouldn't be able to 
+	 * get a lock on a medium after a simulation. */
+	result = brasero_burn_can_use_drive_exclusively (burn, burner);
+	if (result != BRASERO_BURN_OK)
+		return result;
+
 	/* actual running of task */
 	result = brasero_task_run (priv->task, &ret_error);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]