Mir

Merge lp:~mlankhorst/mir/setsid into lp:~mir-team/mir/trunk

Proposed by Maarten Lankhorst
Status: Merged
Approved by: Thomas Voß
Approved revision: no longer in the source branch.
Merged at revision: 882
Proposed branch: lp:~mlankhorst/mir/setsid
Merge into: lp:~mir-team/mir/trunk
Diff against target: 30 lines (+20/-0)
1 file modified
src/server/graphics/gbm/linux_virtual_terminal.cpp (+20/-0)
To merge this branch: bzr merge lp:~mlankhorst/mir/setsid
Reviewer Review Type Date Requested Status
Alexandros Frantzis (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Thomas Voß (community) Approve
Review via email: mp+176676@code.launchpad.net

Commit message

Fixes LP: #1195509

To post a comment you must log in.
Revision history for this message
Thomas Voß (thomas-voss) wrote :

LGTM.

review: Approve
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good from a functionality perspective. Some style nits:

8 + if (activate) {

opening brace on its own line

10 + BOOST_THROW_EXCEPTION(
11 + boost::enable_error_info(
12 + std::runtime_error("Failed to stop being a process group"))
13 + << boost::errinfo_errno(errno));

17 + BOOST_THROW_EXCEPTION(
18 + boost::enable_error_info(
19 + std::runtime_error("Failed to become session leader"))
20 + << boost::errinfo_errno(errno));

Multi-line statements in 'if' clauses should be placed in curly braces.

review: Needs Fixing
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/server/graphics/gbm/linux_virtual_terminal.cpp'
2--- src/server/graphics/gbm/linux_virtual_terminal.cpp 2013-07-08 10:32:48 +0000
3+++ src/server/graphics/gbm/linux_virtual_terminal.cpp 2013-07-24 13:26:27 +0000
4@@ -186,6 +186,26 @@
5
6 std::string const active_vt_path{vt_path_stream.str()};
7
8+ if (activate)
9+ {
10+ if (getpid() == getpgid(0) && setpgid(0, getpgid(getppid())) < 0)
11+ {
12+ BOOST_THROW_EXCEPTION(
13+ boost::enable_error_info(
14+ std::runtime_error("Failed to stop being a process group"))
15+ << boost::errinfo_errno(errno));
16+ }
17+
18+ /* become process group leader */
19+ if (setsid() < 0)
20+ {
21+ BOOST_THROW_EXCEPTION(
22+ boost::enable_error_info(
23+ std::runtime_error("Failed to become session leader"))
24+ << boost::errinfo_errno(errno));
25+ }
26+ }
27+
28 auto vt_fd = fops->open(active_vt_path.c_str(), O_RDONLY | O_NDELAY);
29
30 if (vt_fd < 0)

Subscribers

People subscribed via source and target branches