| 160 | } |
| 161 | |
| 162 | int lwp_session_remove(rt_session_t session, rt_processgroup_t group) |
| 163 | { |
| 164 | rt_bool_t is_empty = RT_FALSE; |
| 165 | |
| 166 | /* parameter check */ |
| 167 | if (session == RT_NULL || group == RT_NULL) |
| 168 | { |
| 169 | return -EINVAL; |
| 170 | } |
| 171 | |
| 172 | SESS_LOCK_NESTED(session); |
| 173 | PGRP_LOCK_NESTED(group); |
| 174 | |
| 175 | rt_list_remove(&(group->pgrp_list_node)); |
| 176 | /* clear children sid */ |
| 177 | lwp_pgrp_update_children_info(group, 0, group->pgid); |
| 178 | group->sid = 0; |
| 179 | group->session = RT_NULL; |
| 180 | |
| 181 | PGRP_UNLOCK(group); |
| 182 | |
| 183 | is_empty = rt_list_isempty(&(session->processgroup)); |
| 184 | |
| 185 | SESS_UNLOCK(session); |
| 186 | |
| 187 | if (is_empty) |
| 188 | { |
| 189 | lwp_session_delete(session); |
| 190 | return 1; |
| 191 | } |
| 192 | |
| 193 | return 0; |
| 194 | } |
| 195 | |
| 196 | int lwp_session_move(rt_session_t session, rt_processgroup_t group) |
| 197 | { |
no test coverage detected