Real time tasks with CooOs
This is just one approach that will work.

Start by creating a fifth "manager" task, that runs at a higher priority than the four tasks that will do the work.

From the manager, create the four managed tasks, all at the same priority that must be lower than the manager task's priority, and all initially in the "TASK_WAITING" state.

The manager then goes into a loop: 


Awaken worker task 'x'. CoAwakeTask(workerid[x]);
Delay for 3 seconds. CoTickDelay(3000);
Suspend worker task 'x'. CoSuspendTask(workerid[x]);
Increment and if necessary wrap 'x' if (++x &gt;= NUM_WORKER_TASKS) x = 0;
Loop