Changeset 2569ec90 in mainline
- Timestamp:
- 2006-06-05T18:15:30Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b65caba1
- Parents:
- 31e8ddd
- Location:
- generic/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/src/ddi/ddi.c
r31e8ddd r2569ec90 136 136 } 137 137 138 /*139 * TODO: We are currently lacking support for task destroying.140 * Once it is added to the kernel, we must take care to141 * synchronize in a way that prevents race conditions here.142 */143 144 138 /* Lock the task and release the lock protecting tasks_btree. */ 145 139 spinlock_lock(&t->lock); -
generic/src/proc/task.c
r31e8ddd r2569ec90 141 141 void task_destroy(task_t *t) 142 142 { 143 spinlock_lock(&tasks_lock);144 btree_remove(&tasks_btree, t->taskid, NULL);145 spinlock_unlock(&tasks_lock);146 147 143 task_destroy_arch(t); 148 144 btree_destroy(&t->futexes); … … 275 271 return ENOENT; 276 272 } 277 273 278 274 spinlock_lock(&ta->lock); 279 275 ta->refcount++; 280 276 spinlock_unlock(&ta->lock); 281 277 278 btree_remove(&tasks_btree, ta->taskid, NULL); 282 279 spinlock_unlock(&tasks_lock); 283 280 -
generic/src/security/cap.c
r31e8ddd r2569ec90 113 113 return (__native) ENOENT; 114 114 } 115 116 spinlock_lock(&t->lock); 117 cap_set(t, cap_get(t) | caps); 118 spinlock_unlock(&t->lock); 119 115 120 spinlock_unlock(&tasks_lock); 116 121 117 cap_set(t, cap_get(t) | caps); 122 118 123 119 124 interrupts_restore(ipl); … … 150 155 return (__native) ENOENT; 151 156 } 152 spinlock_unlock(&tasks_lock);153 157 154 158 /* … … 158 162 */ 159 163 if (!(cap_get(TASK) & CAP_CAP) || !(t == TASK)) { 164 spinlock_unlock(&tasks_lock); 160 165 interrupts_restore(ipl); 161 166 return (__native) EPERM; 162 167 } 168 169 spinlock_lock(&t->lock); 170 cap_set(t, cap_get(t) & ~caps); 171 spinlock_unlock(&t->lock); 163 172 164 cap_set(t, cap_get(t) & ~caps);165 173 spinlock_unlock(&tasks_lock); 174 166 175 interrupts_restore(ipl); 167 176 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.