Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/kern_thr.c
Show First 20 Lines • Show All 181 Lines • ▼ Show 20 Lines | case RTP_PRIO_NORMAL: | ||||
rtp->prio = 0; | rtp->prio = 0; | ||||
break; | break; | ||||
default: | default: | ||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
} | } | ||||
#ifdef RACCT | #ifdef RACCT | ||||
if (racct_enable) { | |||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
error = racct_add(p, RACCT_NTHR, 1); | error = racct_add(p, RACCT_NTHR, 1); | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
if (error != 0) | if (error != 0) | ||||
return (EPROCLIM); | return (EPROCLIM); | ||||
} | |||||
#endif | #endif | ||||
/* Initialize our td */ | /* Initialize our td */ | ||||
newtd = thread_alloc(0); | newtd = thread_alloc(0); | ||||
if (newtd == NULL) { | if (newtd == NULL) { | ||||
error = ENOMEM; | error = ENOMEM; | ||||
goto fail; | goto fail; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | #endif | ||||
TD_SET_CAN_RUN(newtd); | TD_SET_CAN_RUN(newtd); | ||||
sched_add(newtd, SRQ_BORING); | sched_add(newtd, SRQ_BORING); | ||||
thread_unlock(newtd); | thread_unlock(newtd); | ||||
return (0); | return (0); | ||||
fail: | fail: | ||||
#ifdef RACCT | #ifdef RACCT | ||||
if (racct_enable) { | |||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
racct_sub(p, RACCT_NTHR, 1); | racct_sub(p, RACCT_NTHR, 1); | ||||
PROC_UNLOCK(p); | PROC_UNLOCK(p); | ||||
} | |||||
#endif | #endif | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
sys_thr_self(struct thread *td, struct thr_self_args *uap) | sys_thr_self(struct thread *td, struct thr_self_args *uap) | ||||
/* long *id */ | /* long *id */ | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 265 Lines • Show Last 20 Lines |