Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 'develop' to 'master' #50

Merged
merged 13 commits into from May 2, 2019
Merged

Merge 'develop' to 'master' #50

merged 13 commits into from May 2, 2019

Conversation

CromwellEnage
Copy link
Contributor

Boost.Parameter changes have now been merged from 'develop' to 'master'.

timblechmann and others added 13 commits November 5, 2018 16:14
In VxWorks Kernel, the re-schedule mechanism does not enable "round-robin" reschdule between the same priority tasks by default. So the case "stack_unbounded_stress_test" will lead to test case hang forever. Here's the details:

The test case creates 4 tasks as “Reader”, and then 4 tasks as “Writer”, all those 8 task has the same priority 220.
If the target has 2 cores, the first 2 reader tasks will occupy the cores by “while (1)” without yield, so the other 2 readers tasks and 4 writers tasks have no chance to be run.
This will lead to the test case loop forever , then the exp scrip will catch it and print “RTP Execution Timeout; rebooting”

The test case creates 4 tasks as “Reader”, and then 4 tasks as “Writer”, all those 8 task has the same priority 220 in VxWorks Kernel.
If the target has 2 cores, the first 2 reader tasks will occupy the cores by “while (1)” without yield, so the other 2 readers tasks and 4 writers tasks have no chance to be run.
This will lead to the test case loop forever without any ending.

Why modify spsc_queue_stress_test.cpp :
In VxWorks user-land task (Wind River calls it as RTP), the max number of objects (the internal data structure RTP uses) in one RTP is limited at most 65535.
When the test is selected to run, the C++ constructor will create 1<<16 number of mutex via "new spsc_queue_tester".
And after test1->run() is finished, the C++ destructor will delete 1<<16 number of mutex by default.
This caused the problem, because VxWorks just support ((1<<16)-1) objects within an RTP.
modify freelist_test.cpp/spsc_queue_stress_test.cpp/test_common.hpp to adapt VxWorks7
<boost/lockfree/policies.hpp>
* Change include statement to reflect the fact that the boost::parameter::template_keyword class template was moved to <boost/parameter/template_keyword.hpp>.

<boost/lockfree/policies.hpp>
* Use boost::mpl::has_key vice boost::lockfree::detail::has_arg.
Update .yml scripts as per Peter Dimov's message announcing the merging of CMake into boostorg/develop.
Adjust to changes in Boost.Parameter
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants