summaryrefslogtreecommitdiff
path: root/src/rebar_relx.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2015-11-14 14:56:56 +0000
committerFred Hebert <mononcqc@ferd.ca>2015-11-14 14:56:56 +0000
commit5f7351d78473634e717c956362d233b8000854c4 (patch)
treee68233d9fa9daa3f41c3e01a554325f0537d1819 /src/rebar_relx.erl
parentbab807822575a5c4d7c069210889013d61e53fd3 (diff)
Fix IO locking up in shell apps
Application masters are booted at the root of apps, and take over the group leader role to redirect IO. To cut the chain short and properly have their role inherited, they are their own leader, and keep a reference to the old leader in their internal state, which we cannot change. This is done so process ownership to a given application can be established, and allows to properly clean up resources outside the supervision tree when an app is shut down. This patch goes around and finds all processes whose group leaders are application masters older than the new `user' process booted by the shell providers, and swaps them with that new `user'. This lets the application masters survive, and fixes the blocking IO issue (resolving issue #899) This may mean an incomplete clean up is down on application shutdown, but that seems like a fair compromise.
Diffstat (limited to 'src/rebar_relx.erl')
0 files changed, 0 insertions, 0 deletions