tests: kernel: work_queue: avoid improper access to internal structures
Nothing in the API description the delayed work structure sanctions direct reference to internal fields. Do not assume that a delayed work item can be initialized in any way other than by invoking the delayed work item init function. Do not assume that a delayed work item can be submitted without delay by invoking k_work_submit() with a reference to the contained work item. Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
This commit is contained in:
parent
cd2a5dd612
commit
fbb7eb81b8
1 changed files with 5 additions and 5 deletions
|
@ -75,7 +75,7 @@ static void delayed_test_items_init(void)
|
||||||
|
|
||||||
for (i = 0; i < NUM_TEST_ITEMS; i++) {
|
for (i = 0; i < NUM_TEST_ITEMS; i++) {
|
||||||
delayed_tests[i].key = i + 1;
|
delayed_tests[i].key = i + 1;
|
||||||
k_work_init(&delayed_tests[i].work.work, work_handler);
|
k_delayed_work_init(&delayed_tests[i].work, work_handler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ static void coop_work_main(int arg1, int arg2)
|
||||||
|
|
||||||
for (i = 1; i < NUM_TEST_ITEMS; i += 2) {
|
for (i = 1; i < NUM_TEST_ITEMS; i += 2) {
|
||||||
TC_PRINT(" - Submitting work %d from coop thread\n", i + 1);
|
TC_PRINT(" - Submitting work %d from coop thread\n", i + 1);
|
||||||
k_work_submit(&delayed_tests[i].work.work);
|
k_delayed_work_submit(&delayed_tests[i].work, K_NO_WAIT);
|
||||||
k_msleep(SUBMIT_WAIT);
|
k_msleep(SUBMIT_WAIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ static void delayed_test_items_submit(void)
|
||||||
|
|
||||||
for (i = 0; i < NUM_TEST_ITEMS; i += 2) {
|
for (i = 0; i < NUM_TEST_ITEMS; i += 2) {
|
||||||
TC_PRINT(" - Submitting work %d from preempt thread\n", i + 1);
|
TC_PRINT(" - Submitting work %d from preempt thread\n", i + 1);
|
||||||
k_work_submit(&delayed_tests[i].work.work);
|
k_delayed_work_submit(&delayed_tests[i].work, K_NO_WAIT);
|
||||||
k_msleep(SUBMIT_WAIT);
|
k_msleep(SUBMIT_WAIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,10 +194,10 @@ static void test_resubmit(void)
|
||||||
TC_PRINT("Starting resubmit test\n");
|
TC_PRINT("Starting resubmit test\n");
|
||||||
|
|
||||||
delayed_tests[0].key = 1;
|
delayed_tests[0].key = 1;
|
||||||
delayed_tests[0].work.work.handler = resubmit_work_handler;
|
k_delayed_work_init(&delayed_tests[0].work, resubmit_work_handler);
|
||||||
|
|
||||||
TC_PRINT(" - Submitting work\n");
|
TC_PRINT(" - Submitting work\n");
|
||||||
k_work_submit(&delayed_tests[0].work.work);
|
k_delayed_work_submit(&delayed_tests[0].work, K_NO_WAIT);
|
||||||
|
|
||||||
TC_PRINT(" - Waiting for work to finish\n");
|
TC_PRINT(" - Waiting for work to finish\n");
|
||||||
k_msleep(CHECK_WAIT);
|
k_msleep(CHECK_WAIT);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue