Changeset 0182a665 in mainline for generic/src/proc/task.c


Ignore:
Timestamp:
2006-06-10T13:40:53Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8060a24c
Parents:
971cf31f
Message:

Fix double thread_join() in ktaskgc.
In thread_create(), lock TASK with interrupts disabled again.
thread_join_timeout() can use ordinary waitq_sleep_timeout().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/proc/task.c

    r971cf31f r0182a665  
    301301
    302302        /*
    303          * Interrupt all threads except this one.
     303         * Interrupt all threads except ktaskclnp.
    304304         */     
    305305        for (cur = ta->th_head.next; cur != &ta->th_head; cur = cur->next) {
     
    468468                        thr = list_get_instance(cur, thread_t, th_link);
    469469                        spinlock_lock(&thr->lock);
    470                         if (thr->state == Undead && thr->join_type == None) {
     470                        if (thr != t && thr->state == Undead && thr->join_type == None) {
    471471                                thr->join_type = TaskGC;
    472472                                spinlock_unlock(&thr->lock);
Note: See TracChangeset for help on using the changeset viewer.