Proper exiting for forked process in do_install()
This commit is contained in:
parent
15f56ccee0
commit
042a4730e3
@ -651,18 +651,18 @@ def do_install(self, **kwargs):
|
|||||||
raise InstallError("Unable to fork build process: %s" % e)
|
raise InstallError("Unable to fork build process: %s" % e)
|
||||||
|
|
||||||
if pid == 0:
|
if pid == 0:
|
||||||
tty.msg("Building %s." % self.name)
|
|
||||||
|
|
||||||
# create the install directory (allow the layout to handle
|
|
||||||
# this in case it needs to add extra files)
|
|
||||||
spack.install_layout.make_path_for_spec(self.spec)
|
|
||||||
|
|
||||||
# Set up process's build environment before running install.
|
|
||||||
build_env.set_compiler_environment_variables(self)
|
|
||||||
build_env.set_build_environment_variables(self)
|
|
||||||
build_env.set_module_variables_for_package(self)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
tty.msg("Building %s." % self.name)
|
||||||
|
|
||||||
|
# create the install directory (allow the layout to handle
|
||||||
|
# this in case it needs to add extra files)
|
||||||
|
spack.install_layout.make_path_for_spec(self.spec)
|
||||||
|
|
||||||
|
# Set up process's build environment before running install.
|
||||||
|
build_env.set_compiler_environment_variables(self)
|
||||||
|
build_env.set_build_environment_variables(self)
|
||||||
|
build_env.set_module_variables_for_package(self)
|
||||||
|
|
||||||
# Subclasses implement install() to do the build &
|
# Subclasses implement install() to do the build &
|
||||||
# install work.
|
# install work.
|
||||||
self.install(self.spec, self.prefix)
|
self.install(self.spec, self.prefix)
|
||||||
@ -693,7 +693,11 @@ def do_install(self, **kwargs):
|
|||||||
"Spack will think this package is installed." +
|
"Spack will think this package is installed." +
|
||||||
"Manually remove this directory to fix:",
|
"Manually remove this directory to fix:",
|
||||||
self.prefix)
|
self.prefix)
|
||||||
raise
|
|
||||||
|
# Child doesn't raise or return to main spack code.
|
||||||
|
# Just runs default exception handler and exits.
|
||||||
|
sys.excepthook(*sys.exc_info())
|
||||||
|
os._exit(1)
|
||||||
|
|
||||||
# Parent process just waits for the child to complete. If the
|
# Parent process just waits for the child to complete. If the
|
||||||
# child exited badly, assume it already printed an appropriate
|
# child exited badly, assume it already printed an appropriate
|
||||||
@ -727,7 +731,7 @@ def do_uninstall(self, **kwargs):
|
|||||||
force = kwargs.get('force', False)
|
force = kwargs.get('force', False)
|
||||||
|
|
||||||
if not self.installed:
|
if not self.installed:
|
||||||
raise InstallError(self.spec + " is not installed.")
|
raise InstallError(str(self.spec) + " is not installed.")
|
||||||
|
|
||||||
if not force:
|
if not force:
|
||||||
deps = self.installed_dependents
|
deps = self.installed_dependents
|
||||||
|
Loading…
Reference in New Issue
Block a user