#### D.2.13.3 copyTask

Procedure from library `tasks.lib` (see tasks_lib).

Usage:
  copyTask(t), t task

Return:
  a copy of t.

Note:
  'task t1 = copyTask(t2);' is not the same as 'task t1 = t2;'. After the latter command, t1 points to the same object as t2; any changes to t2 will also effect t1. In contrast to this, copyTask() creates a new independent task.
  A task whose state is 'started' cannot be copied.

Example:

    LIB "tasks.lib";
    ring R = 0, (x,y), dp;
    ideal I = x9y2+x10, x2y7-y8;
    task t1 = "std", list(I);
    startTasks(t1);
    waitAllTasks(t1);
    task t2 = copyTask(t1);
    killTask(t1);
    t2;   // t2 survived
    ==> A task with the following properties:
    ==> command:          std
    ==> no. of arguments: 1
    ==> state:            completed
    ==>
    getResult(t2);
    ==> _[1]=x2y7-y8
    ==> _[2]=x9y2+x10
    ==> _[3]=x12y+xy11
    ==> _[4]=x13-xy12
    ==> _[5]=y14+xy12
    ==> _[6]=xy13+y12
    killTask(t2);

See also: compareTasks; createTask; getArguments; getCommand; getResult; getState; killTask; printTask.

User manual for Singular version 4.4.1, 2025, generated by texi2html.