state: late locking for install_if package selection

improves behaviour under certain corner case conditions.
cute-signatures
Timo Teräs 2011-03-31 09:21:24 +03:00
parent e43ec60874
commit dded261924
1 changed files with 6 additions and 0 deletions

View File

@ -454,6 +454,12 @@ int apk_state_autolock_name(struct apk_state *state, struct apk_name *name,
if (use == NULL)
return -2;
/* Install_if check did not result in package selection change:
* do not lock the package yet as the preferency might change
* later. */
if (install_if && use->ipkg != NULL)
return 0;
return apk_state_lock_name(state, name, use);
#else
/* If any of the choices is installed, we are good. Otherwise,