Method code for $scheduler.cancel()

[Turn off line numbering]
  1: arg task_id;
  2: var objs;
  3: 
  4: // suspended tasks
  5: if ((objs = (| suspended_tasks[task_id] |))) {
  6:     if (!(sender() in objs) && !$sys.is_system(sender()))
  7:         throw(~perm, sender() + " may not cancel task " + task_id);
  8:     suspended_tasks = dict_del(suspended_tasks, task_id);
  9: 
 10:     // preempted tasks 
 11: } else if (!$sys.is_system(sender())) {
 12:     throw(~perm, sender() + " may not kill task " + task_id);
 13: }
 14: return (> cancel(task_id) <);

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

Tlon