Sync for host and resource-container.
diff --git a/core/resource-container.lisp b/core/resource-container.lisp
index ab65980..7a343af 100644
--- a/core/resource-container.lisp
+++ b/core/resource-container.lisp
@@ -50,6 +50,11 @@
(let ((x (gensym)))
`(for (,x ,var) in-hashtable (resource-registry ,container))))
+(defmethod child-resources ((res resource-container))
+ (sort (iter (for-resource child in res)
+ (collect child))
+ #'resource-before-p))
+
;; Resource container
(defmethod print-object ((rc resource-container) stream)
diff --git a/core/resource.lisp b/core/resource.lisp
index e5027d6..7bc9597 100644
--- a/core/resource.lisp
+++ b/core/resource.lisp
@@ -179,3 +179,13 @@
:os os
:host host
:resource res))))))
+
+(defmethod sync ((res resource-container))
+ (call-next-method)
+ (with-parent-resource res
+ (iter (for child in (child-resources res))
+ (sync child))))
+
+(defmethod sync ((host host))
+ (with-host host
+ (call-next-method)))