I actually have this working now. The improvements for us (the Yocto project) 
are quite dramatic, together with the switchover to multithreaded xz 
compression the process takes several times less for many bigger packages.

I had to do these things:

1) split the binary packaging loop body into its own function

2) set up the task execution and joining with appropriate data structures for 
handling each task

3) fix a few data races (like Jeff predicted): particularly the shared string 
pool structure was completely thread unsafe, and there a couple of other issues 
around copying header data between packages, and usage of static local 
variables in a couple of places.

I'm going to polish the patches, and will provide a link in a couple of days. 
If there's interest from upstream maintainers, I can turn it into a pull 
request.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/211#issuecomment-305258563
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to