fix sys_poll_session performance bug.
This commit is contained in:
+17
-6
@@ -46,16 +46,14 @@ static void _sys_clock_init()
|
||||
gpt_counter_enable(kGPTOutputCompare1);
|
||||
break;
|
||||
case 1:
|
||||
gpt_set_compare_event(kGPTOutputCompare2, OUTPUT_CMP_DISABLE, 1000);
|
||||
gpt_set_compare_event(kGPTOutputCompare2, OUTPUT_CMP_DISABLE, 5000);
|
||||
gpt_counter_enable(kGPTOutputCompare2);
|
||||
break;
|
||||
case 2:
|
||||
gpt_set_compare_event(kGPTOutputCompare3, OUTPUT_CMP_DISABLE, 1000);
|
||||
gpt_set_compare_event(kGPTOutputCompare3, OUTPUT_CMP_DISABLE, 10000);
|
||||
gpt_counter_enable(kGPTOutputCompare3);
|
||||
break;
|
||||
case 3:
|
||||
gpt_set_compare_event(kGPTOutputCompare1, OUTPUT_CMP_DISABLE, 1000);
|
||||
gpt_counter_enable(kGPTOutputCompare1);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -77,7 +75,20 @@ static uint64_t _get_second()
|
||||
|
||||
static void _clear_clock_intr()
|
||||
{
|
||||
gpt_get_compare_event(kGPTOutputCompare1);
|
||||
switch (cur_cpuid()) {
|
||||
case 0:
|
||||
gpt_get_compare_event(kGPTOutputCompare1);
|
||||
break;
|
||||
case 1:
|
||||
gpt_get_compare_event(kGPTOutputCompare2);
|
||||
break;
|
||||
case 2:
|
||||
gpt_get_compare_event(kGPTOutputCompare3);
|
||||
break;
|
||||
case 3:
|
||||
gpt_get_compare_event(kGPTOutputCompare1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static bool _is_timer_expired()
|
||||
|
||||
Reference in New Issue
Block a user