Changeset 1fb4a49 in mainline for kernel/generic/src/proc/task.c


Ignore:
Timestamp:
2019-08-07T05:34:50Z (5 years ago)
Author:
Matthieu Riolo <matthieu.riolo@…>
Children:
5cd2290
Parents:
3ea98e8
git-author:
Michal Koutný <xm.koutny+hos@…> (2015-10-18 10:51:05)
git-committer:
Matthieu Riolo <matthieu.riolo@…> (2019-08-07 05:34:50)
Message:

kernel: Add exit reason parameter to EVENT_EXIT

  • So that own termination can be distinguished from kills by (typically) third party.
  • Translation from exit_reason_t to task_exit_t is left to uspace (taskman).

Conflicts:

kernel/generic/include/proc/task.h
kernel/generic/src/proc/task.c

File:
1 edited

Legend:

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

    r3ea98e8 r1fb4a49  
    8383
    8484/* Forward declarations. */
    85 static void task_kill_internal(task_t *);
     85static void task_kill_internal(task_t *, exit_reason_t);
    8686static errno_t tsk_constructor(void *, unsigned int);
    8787static size_t tsk_destructor(void *);
     
    527527}
    528528
    529 static void task_kill_internal(task_t *task)
     529static void task_kill_internal(task_t *task, exit_reason_t exit_reason)
    530530{
    531531        irq_spinlock_lock(&task->lock, false);
    532532        irq_spinlock_lock(&threads_lock, false);
     533
     534        task->exit_reason = exit_reason;
    533535
    534536        /*
     
    578580        }
    579581
    580         task_kill_internal(task);
     582        task_kill_internal(task, EXIT_REASON_KILLED);
    581583        irq_spinlock_unlock(&tasks_lock, true);
    582584
     
    611613
    612614        irq_spinlock_lock(&tasks_lock, true);
    613         task_kill_internal(TASK);
     615        task_kill_internal(TASK, EXIT_REASON_SELF);
    614616        irq_spinlock_unlock(&tasks_lock, true);
    615617
Note: See TracChangeset for help on using the changeset viewer.