* that this is for convenience only, and some errors can occur without a
* message being printed.
*
- * wimlib is thread-safe as long as different ::WIMStruct's are used, with the
- * following exceptions: wimlib_set_print_errors() and
- * wimlib_set_memory_allocator() apply globally, and wimlib_mount() can only be
- * used by one ::WIMStruct at a time.
+ * wimlib is thread-safe as long as different ::WIMStruct's are used, except for
+ * the fact that wimlib_set_print_errors() and wimlib_set_memory_allocator()
+ * both apply globally.
*
* To open an existing WIM, use wimlib_open_wim().
*
WIMLIB_ERR_READLINK,
WIMLIB_ERR_READ,
WIMLIB_ERR_RENAME,
+ WIMLIB_ERR_RESOURCE_ORDER,
WIMLIB_ERR_SPECIAL_FILE,
WIMLIB_ERR_SPLIT_INVALID,
WIMLIB_ERR_SPLIT_UNSUPPORTED,
* An error occurred when trying to write data to the new WIM at @a output_path.
*
* Note that this function merely copies the resources, so it will not check to
- * see if the resources, including the metadata resource, are valid or not.
+ * see if the resources, including the metadata resources, are valid or not.
+ *
+ * Also, after this function is called, the only function that may be called on
+ * the ::WIMStruct's in the @a swms array is wimlib_free().
*/
extern int wimlib_join(const char **swms, unsigned num_swms,
const char *output_path, int flags);
* If the mount is read-write, modifications to the WIM are staged in a staging
* directory.
*
- * wimlib_mount() currently cannot be used with multiple ::WIMStruct's without
- * intervening wimlib_unmount()s.
+ * wimlib_mount() may be called from multiple threads without intervening calls
+ * to wimlib_unmount(), provided that different ::WIMStruct's are used. (This
+ * was not the case for versions of this library 1.0.3 and earlier.)
*
* wimlib_mount() cannot be used on an image that was exported with
- * wimlib_export() while the dentry trees for both images are still in memory.
+ * wimlib_export_image() while the dentry trees for both images are still in
+ * memory.
*
* @param wim
* Pointer to the ::WIMStruct for the WIM file to be mounted.
* @a image does not specify an existing, single image in @a wim.
* @retval ::WIMLIB_ERR_INVALID_PARAM
* @a image is shared among multiple ::WIMStruct's as a result of a call to
- * wimlib_export().
+ * wimlib_export_image().
* @retval ::WIMLIB_ERR_INVALID_RESOURCE_SIZE
* The metadata resource for @a image in @a wim is invalid.
* @retval ::WIMLIB_ERR_INVALID_SECURITY_DATA
* If ::WIMLIB_OPEN_FLAG_SHOW_PROGRESS is given, progress information will
* be shown if the integrity of the WIM is checked.
* If ::WIMLIB_OPEN_FLAG_SPLIT_OK is given, no error will be issued if the
- * WIM is part of a split WIM; otherwise WIMLIB_ERR_SPLIT_UNSUPPORTED is
+ * WIM is part of a split WIM; otherwise ::WIMLIB_ERR_SPLIT_UNSUPPORTED is
* returned. (This flag may be removed in the future, in which case no
* error will be issued when opening a split WIM.)
*
* from the WIM file associated with @a wim could not be read to compute
* the SHA1 message digests, or the old integrity table (if it existed)
* could not be read.
+ * @retval ::WIMLIB_ERR_RESOURCE_ORDER
+ * Stream resources appeared in the WIM after the XML data or integrity
+ * table, so we could not safely overwrite the XML data and integrity
+ * table. Note: this error should never be received from WIMs that were
+ * written by this library.
* @retval ::WIMLIB_ERR_WRITE
* Failed to write the WIM header, the XML data, or the integrity table to
* the WIM file associated with @a wim.