1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include "task.h"
#include <stdio.h>
#include <unistd.h>
int task_runb(int state, void * data);
int task_runa(int state, void * data);
Task *a,*b;
void main()
{
TaskGroup * task_group;
task_group = task_group_new();
b = task_new(task_group,0.5,task_runb,"b");
a = task_new(task_group,0.4,task_runa,"a");
task_set_active(b);usleep(15000);
//task_set_active(a);
//task_set_active(b);
sleep(4);
}
int task_runa(int state, void* data)
{
static int i;
int j,k;
if(state&TASK_START)
{
printf("task a begain... state = %d",state);
write(1,"task a begin to run...\n",24);
i = 0;
//task_set_active(b);
}
for(j = 0;j < 100 && i< 2000;j++,i++) {
write(1,data,1);
}
usleep(1);
return (i<2000);
}
int task_runb(int state, void* data)
{
static int i;
int j,k;
if(state&TASK_START) i = 0;
for(j = 0;j < 100 && i< 1000;j++,i++)
write(1,data,1);
if(i==500) task_set_active(a);
write(1,"\n",1);
return (i<1000);
}
|