Changeset 31d8e10 in mainline for kernel/generic/src/proc/task.c
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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);
Note:
See TracChangeset
for help on using the changeset viewer.