Method code for $scheduler.cancel()

[Turn on line numbering]
arg task_id;
var objs;

// suspended tasks
if ((objs = (| suspended_tasks[task_id] |))) {
    if (!(sender() in objs) && !$sys.is_system(sender()))
        throw(~perm, sender() + " may not cancel task " + task_id);
    suspended_tasks = dict_del(suspended_tasks, task_id);

    // preempted tasks 
} else if (!$sys.is_system(sender())) {
    throw(~perm, sender() + " may not kill task " + task_id);
}
return (> cancel(task_id) <);

// Miroslav Silovic
// Created 05-Sep-1995 as a part of ColdCore, see: @help Credit

Tlon