Patent ID: 8621475

Claim:
A method of handling multiple tasks in a cooperative multi-tasking extensible stylesheet language transformations (XSLT) server, the method comprising: preparing XSLT code of a XSLT task by a XSLT translator, said preparing including inserting a plurality of suspend checks into said XSLT code, wherein a suspend check comprises an instruction which when executed causes said XSLT task to determine whether a scheduler has issued a suspend request to said XSLT task and to yield to said scheduler when said determination is positive, said inserting including said XSLT translator: identifying one or more input portions of said XSLT code which consume input data when executed and inserting an input suspend check at each identified input portion; identifying one or more output portions of said XSLT code which produce output data when executed and inserting an output suspend check at each identified output portion; identifying each template of said XSLT code and inserting a template suspend check at the beginning of each identified template; and identifying one or more iterative portions of said XSLT code which do not include any non-native XSLT code and any of said inserted input, output, and template suspend checks, and inserting, into each identified iterative portion, a periodic suspend check configured to be executed periodically during execution of the identified iterative portion; executing said prepared XSLT code of said XSLT task on a computer processor; and issuing, by said scheduler, said suspend request to said executing XSLT task when a task with a priority higher than that of the executing XSLT task is waiting in a queue ready to execute.