core: Check out asynchronously

This can be a large performance win in certain circumstances:

 * Cold buffer cache (we don't block the whole process)
 * Requiring a copy instead of hardlink
This commit is contained in:
Colin Walters committed 2012-06-21 18:05:13 -04:00
1 parent eba0ff75cc
commit a7b917c856
4 files changed
+380 -80

No files matched your search

+14 -8
View File
@@ -307,15 +307,21 @@ typedef enum {
OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES = 1
} OstreeRepoCheckoutOverwriteMode;
void
ostree_repo_checkout_tree_async (OstreeRepo *self,
OstreeRepoCheckoutMode mode,
OstreeRepoCheckoutOverwriteMode overwrite_mode,
GFile *destination,
OstreeRepoFile *source,
GFileInfo *source_info,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean
ostree_repo_checkout_tree (OstreeRepo *self,
OstreeRepoCheckoutMode mode,
OstreeRepoCheckoutOverwriteMode overwrite_mode,
GFile *destination,
OstreeRepoFile *source,
GFileInfo *source_info,
GCancellable *cancellable,
GError **error);
ostree_repo_checkout_tree_finish (OstreeRepo *self,
GAsyncResult *result,
GError **error);
gboolean ostree_repo_read_commit (OstreeRepo *self,
const char *rev,