diff options
| author | Jonathan Mini <mini@FreeBSD.org> | 2002-11-24 06:45:45 +0000 |
|---|---|---|
| committer | Jonathan Mini <mini@FreeBSD.org> | 2002-11-24 06:45:45 +0000 |
| commit | e9d0431f0bacfa6eb8503a6dbf56f530caa8776a (patch) | |
| tree | a39e089818c7c2d431b3cee8a2b3effe72c651e5 /lib/libpthread/thread | |
| parent | 4df51f23bbae3e37618843dd042e984a9a23ff86 (diff) | |
Notes
Diffstat (limited to 'lib/libpthread/thread')
| -rw-r--r-- | lib/libpthread/thread/thr_kern.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index 087e1df88ea8..0747cffb50a3 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/thread/thr_kern.c @@ -166,7 +166,18 @@ _thread_kern_sched(void) case PS_SPINBLOCK: /* Increment spinblock count. */ _spinblock_count++; - /*FALLTHROUGH*/ + + /* No timeouts for these states. */ + curthread->wakeup_time.tv_sec = -1; + curthread->wakeup_time.tv_nsec = -1; + + /* Restart the time slice. */ + curthread->slice_usec = -1; + + /* Insert into the work queue. */ + PTHREAD_WORKQ_INSERT(curthread); + break; + case PS_DEADLOCK: case PS_JOIN: case PS_MUTEX_WAIT: @@ -288,7 +299,9 @@ _thread_kern_scheduler(struct kse_mailbox *km) access_lock == 0) { PTHREAD_WAITQ_CLEARACTIVE(); PTHREAD_WORKQ_REMOVE(pthread); - PTHREAD_NEW_STATE(pthread, + PTHREAD_PRIOQ_INSERT_TAIL( + pthread); + PTHREAD_SET_STATE(pthread, PS_RUNNING); PTHREAD_WAITQ_SETACTIVE(); |
