Open 4ybaka opened 6 years ago
You could capture the task and thus solve your first problem. See my solution here: https://github.com/turbolocust/SimpleZIP/blob/master/SimpleZIP_UI/Application/Util/WriterUtils.cs
It can also be done without a child or nested task, but the immediate cancellation of the whole operation isn't as reliable then.
1) Making everything async is kind of just a matter of search/replace. I’m not 100% there’s benefit but I love async/await so hey.
2). I’m not 100% sure what you’re asking for here
3)Not sure how this helps.
I don’t honestly see what’s blocking the creation of large tar files. Maybe a code sample will help.
One of issues with archiving huge amount of data is resuming of process (due to instance reboot, IO failure, etc). At this moment I have next issues with sharpcompress:
If TarHeader class will be available outside of library then it is pretty easy to implemenet resume logic - if written data length more then header size - just skip header and some part of content. Otherwise serialize header and skip part of it's content.
Now using ArrayPool for Skip/Transfer: https://github.com/adamhathcock/sharpcompress/pull/326
This should help for 3
Fix for 1: https://github.com/adamhathcock/sharpcompress/pull/327
I felt like I did it for a reason though
I would like to make it async all the but that's a bigger PR.
@adamhathcock do you have any thoughts regarding PR?
@adamhathcock when do you plan to create a new release? I want to use a new version with new writer options.
I want to use sharpcompress to create huge tar archives (TBs) without compression but I can't do it by next reasons:
Is there any chance that some of these issues will be resolved?