File: testtask.c

package info (click to toggle)
gman 0.9.3-5.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 652 kB
  • sloc: ansic: 7,389; makefile: 131; perl: 105
file content (50 lines) | stat: -rw-r--r-- 940 bytes parent folder | download | duplicates (8)
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);
}