Lines Matching defs:inheritor
67 * turnstile's ts_inheritor never changes until the inheritor calls
179 * Make 'inheritor' inherit priority from this turnstile.
182 turnstile_pi_inherit(turnstile_t *ts, kthread_t *inheritor, pri_t epri)
184 ASSERT(THREAD_LOCK_HELD(inheritor));
187 if (epri <= inheritor->t_pri)
191 ts->ts_inheritor = inheritor;
193 disp_lock_enter_high(&inheritor->t_pi_lock);
194 ts->ts_prioinv = inheritor->t_prioinv;
195 inheritor->t_prioinv = ts;
196 disp_lock_exit_high(&inheritor->t_pi_lock);
199 * 'inheritor' is already inheriting from this turnstile,
202 ASSERT(ts->ts_inheritor == inheritor);
207 if (epri > DISP_PRIO(inheritor))
208 thread_change_epri(inheritor, epri);
212 * If turnstile is non-NULL, remove it from inheritor's t_prioinv list.
216 turnstile_pi_tsdelete(turnstile_t *ts, kthread_t *inheritor)
221 disp_lock_enter_high(&inheritor->t_pi_lock);
222 tspp = &inheritor->t_prioinv;
230 disp_lock_exit_high(&inheritor->t_pi_lock);
235 * Remove turnstile from inheritor's t_prioinv list, compute
236 * new priority, and change the inheritor's effective priority if
242 kthread_t *inheritor = ts->ts_inheritor;
245 ASSERT(inheritor == curthread);
247 thread_lock_high(inheritor);
248 new_epri = turnstile_pi_tsdelete(ts, inheritor);
249 if (new_epri != DISP_PRIO(inheritor))
250 thread_change_epri(inheritor, new_epri);
252 if (DISP_MUST_SURRENDER(inheritor))
253 cpu_surrender(inheritor);
254 thread_unlock_high(inheritor);
265 kthread_t *inheritor = curthread;
268 thread_lock(inheritor);
269 new_epri = turnstile_pi_tsdelete(NULL, inheritor);
270 if (new_epri != DISP_PRIO(inheritor))
271 thread_change_epri(inheritor, new_epri);
272 if (DISP_MUST_SURRENDER(inheritor))
273 cpu_surrender(inheritor);
274 thread_unlock(inheritor);
654 * from the turnstile chain and if there is an inheritor, delete it
655 * from the inheritor's t_prioinv chain.
696 * inheritor's thread lock (see turnstile_unsleep()).
795 * inheritor would require holding the inheritor's thread lock, while also
797 * inheritor's thread lock is not free, and is also a turnstile lock that