* [PATCH userspace v2] sepolicy: generate man pages in parallel
@ 2019-10-18 9:20 Ondrej Mosnacek
2019-10-22 12:25 ` Stephen Smalley
0 siblings, 1 reply; 2+ messages in thread
From: Ondrej Mosnacek @ 2019-10-18 9:20 UTC (permalink / raw)
To: selinux
Generating man pages takes a lot of time. Do it in parallel to speed up
the process.
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
---
python/sepolicy/sepolicy.py | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
Changes in v2:
- use multiprocessing.Pool, which reacts better to interruption
diff --git a/python/sepolicy/sepolicy.py b/python/sepolicy/sepolicy.py
index 1934cd86..7b223065 100755
--- a/python/sepolicy/sepolicy.py
+++ b/python/sepolicy/sepolicy.py
@@ -25,6 +25,7 @@ import os
import sys
import selinux
import sepolicy
+from multiprocessing import Pool
from sepolicy import get_os_version, get_conditionals, get_conditionals_format_text
import argparse
PROGNAME = "policycoreutils"
@@ -326,8 +327,13 @@ def gen_gui_args(parser):
gui.set_defaults(func=gui_run)
+def manpage_work(domain, path, root, source_files, web):
+ from sepolicy.manpage import ManPage
+ m = ManPage(domain, path, root, source_files, web)
+ print(m.get_man_page_path())
+
def manpage(args):
- from sepolicy.manpage import ManPage, HTMLManPages, manpage_domains, manpage_roles, gen_domains
+ from sepolicy.manpage import HTMLManPages, manpage_domains, manpage_roles, gen_domains
path = args.path
if not args.policy and args.root != "/":
@@ -340,9 +346,11 @@ def manpage(args):
else:
test_domains = args.domain
+ p = Pool()
for domain in test_domains:
- m = ManPage(domain, path, args.root, args.source_files, args.web)
- print(m.get_man_page_path())
+ p.apply_async(manpage_work, [domain, path, args.root, args.source_files, args.web])
+ p.close()
+ p.join()
if args.web:
HTMLManPages(manpage_roles, manpage_domains, path, args.os)
--
2.21.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH userspace v2] sepolicy: generate man pages in parallel
2019-10-18 9:20 [PATCH userspace v2] sepolicy: generate man pages in parallel Ondrej Mosnacek
@ 2019-10-22 12:25 ` Stephen Smalley
0 siblings, 0 replies; 2+ messages in thread
From: Stephen Smalley @ 2019-10-22 12:25 UTC (permalink / raw)
To: Ondrej Mosnacek, selinux
On 10/18/19 5:20 AM, Ondrej Mosnacek wrote:
> Generating man pages takes a lot of time. Do it in parallel to speed up
> the process.
>
> Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
Thanks, applied.
> ---
> python/sepolicy/sepolicy.py | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> Changes in v2:
> - use multiprocessing.Pool, which reacts better to interruption
>
> diff --git a/python/sepolicy/sepolicy.py b/python/sepolicy/sepolicy.py
> index 1934cd86..7b223065 100755
> --- a/python/sepolicy/sepolicy.py
> +++ b/python/sepolicy/sepolicy.py
> @@ -25,6 +25,7 @@ import os
> import sys
> import selinux
> import sepolicy
> +from multiprocessing import Pool
> from sepolicy import get_os_version, get_conditionals, get_conditionals_format_text
> import argparse
> PROGNAME = "policycoreutils"
> @@ -326,8 +327,13 @@ def gen_gui_args(parser):
> gui.set_defaults(func=gui_run)
>
>
> +def manpage_work(domain, path, root, source_files, web):
> + from sepolicy.manpage import ManPage
> + m = ManPage(domain, path, root, source_files, web)
> + print(m.get_man_page_path())
> +
> def manpage(args):
> - from sepolicy.manpage import ManPage, HTMLManPages, manpage_domains, manpage_roles, gen_domains
> + from sepolicy.manpage import HTMLManPages, manpage_domains, manpage_roles, gen_domains
>
> path = args.path
> if not args.policy and args.root != "/":
> @@ -340,9 +346,11 @@ def manpage(args):
> else:
> test_domains = args.domain
>
> + p = Pool()
> for domain in test_domains:
> - m = ManPage(domain, path, args.root, args.source_files, args.web)
> - print(m.get_man_page_path())
> + p.apply_async(manpage_work, [domain, path, args.root, args.source_files, args.web])
> + p.close()
> + p.join()
>
> if args.web:
> HTMLManPages(manpage_roles, manpage_domains, path, args.os)
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-10-22 12:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-18 9:20 [PATCH userspace v2] sepolicy: generate man pages in parallel Ondrej Mosnacek
2019-10-22 12:25 ` Stephen Smalley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).