RTEMS C++ examples?
Chris Johns
chrisj at rtems.org
Fri Jul 26 01:03:33 UTC 2019
On 25/7/19 2:56 pm, groups at chichak.ca wrote:
> I’m working on a bit of a hobby project right now and someone bullied me into trying C++. Fine. Plus I did say that I’d try it in anger at some point.
Good on them. My first large application run on RTEMS was a ported C++
application in the mid '90s. It was moved from an old cfront 3.0 compiler to gcc
and RTEMS.
> So far I’ve managed to get a simple Init going that creates two tasks. I haven’t tried it yet, since it was 2AM when I finally got the right sequence of extern “C”s in place to get it to compile.
Nice.
> Once I get something that demonstrates that the tasks are truly running and have some sort of demonstrable C++ nature, I’ll send someone a zip of the project file set and maybe I could learn some better idioms to get this stuff going and we can all learn from this.
As far as I can see the C++11 and later thread support does not let us set POSIX
attributes like the stack size or real-time modes when creating threads which is
a shame but some other pieces of libstdc++ should work nicely. I suggest you
take a look at the mutex interface [1] ...
#include <mutex>
std::recursive_mutex rlock;
void foo(blahs& blah)
{
// hold the mutex while in this function
std::lock_guard<std::recursive_mutex> guard(rlock);
blah.blah().blah = "blah";
}
Chris
[1] https://en.cppreference.com/w/cpp/thread/recursive_mutex
More information about the users
mailing list