Changeset 31d8e10 in mainline for kernel/generic/src/proc
- Timestamp:
- 2007-04-05T16:09:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 547fa39
- Parents:
- 879585a3
- Location:
- kernel/generic/src/proc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/proc/scheduler.c
r879585a3 r31d8e10 378 378 { 379 379 int priority; 380 380 DEADLOCK_PROBE_INIT(p_joinwq); 381 381 382 ASSERT(CPU != NULL); 382 383 … … 407 408 delay(10); 408 409 spinlock_lock(&THREAD->lock); 410 DEADLOCK_PROBE(p_joinwq, 411 DEADLOCK_THRESHOLD); 409 412 goto repeat; 410 413 } -
kernel/generic/src/proc/task.c
r879585a3 r31d8e10 42 42 #include <mm/as.h> 43 43 #include <mm/slab.h> 44 #include <atomic.h> 44 45 #include <synch/spinlock.h> 45 46 #include <synch/waitq.h> … … 141 142 /* 142 143 * Increment address space reference count. 143 * TODO: Reconsider the locking scheme. 144 */ 145 mutex_lock(&as->lock); 146 as->refcount++; 147 mutex_unlock(&as->lock); 144 */ 145 atomic_inc(&as->refcount); 148 146 149 147 spinlock_lock(&tasks_lock); … … 167 165 btree_destroy(&t->futexes); 168 166 169 mutex_lock_active(&t->as->lock); 170 if (--t->as->refcount == 0) { 171 mutex_unlock(&t->as->lock); 167 if (atomic_predec(&t->as->refcount) == 0) 172 168 as_destroy(t->as); 173 /*174 * t->as is destroyed.175 */176 } else177 mutex_unlock(&t->as->lock);178 169 179 170 free(t); -
kernel/generic/src/proc/thread.c
r879585a3 r31d8e10 497 497 498 498 /* 499 * Since the thread is expected to notbe already detached,499 * Since the thread is expected not to be already detached, 500 500 * pointer to it must be still valid. 501 501 */
Note:
See TracChangeset
for help on using the changeset viewer.