feat: 调度去进程化,优化进程线程依赖关系

1.移动LosTaskCB 至los_sched_pri.h, 解决调度与task的依赖关系
2.调度去进程化

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ibd3b618cee59f0b323e2b4fb14354c088b60b733
This commit is contained in:
zhushengle
2022-01-24 15:11:55 +08:00
parent 046d8defdf
commit dc479fb7bd
17 changed files with 754 additions and 843 deletions

View File

@@ -55,33 +55,60 @@ static int ProcessTest001(void)
return 0;
}
static int Child(void)
{
int count = TEST_COUNT;
int status = 0;
while (count > 0) {
int ret = fork();
if (ret == 0) {
ret = ProcessTest001();
exit(ret);
} else if (ret > 0) {
int pid = ret;
ret = wait(&status);
status = WEXITSTATUS(status);
if (ret != pid) {
printf("wait child %d failed, is %u!\n", pid, ret);
exit(__LINE__);
}
if (status != 255) { // 255, assert that function Result is equal to this.
printf("wait child status is 255, but is %d child is error line :%d \n", status, status);
exit(__LINE__);
}
} else {
printf("fork failed!\n");
exit(__LINE__);
}
count--;
}
return 0;
}
static int Testcase(void)
{
int ret;
int status;
int pid;
int count = TEST_COUNT;
int temp = GetCpuCount();
if (temp <= 1) {
return 0;
}
while (count > 0) {
ret = fork();
if (ret == 0) {
ret = ProcessTest001();
exit(10); // 10, exit args
} else if (ret > 0) {
pid = ret;
ret = wait(&status);
status = WEXITSTATUS(status);
ICUNIT_ASSERT_EQUAL(ret, pid, ret);
ICUNIT_ASSERT_EQUAL(status, 255, status); // 255, assert that function Result is equal to this.
}
ICUNIT_ASSERT_WITHIN_EQUAL(ret, 0, 100000, ret); // 100000, assert that function Result is equal to this.
count--;
ret = fork();
ICUNIT_ASSERT_WITHIN_EQUAL(ret, 0, 100000, ret); // 100000, assert that function Result is equal to this.
if (ret == 0) {
exit(Child());
} else if (ret > 0) {
pid = ret;
ret = waitpid(pid, &status, NULL);
status = WEXITSTATUS(status);
ICUNIT_ASSERT_EQUAL(ret, pid, ret);
ICUNIT_ASSERT_EQUAL(status, 0, status);
}
return 0;