Opendigitalradio/ODR-DabMod

Using C++11 instead of boost

piratfm opened this issue · 8 comments

I have some small modifications, that allows to migrate from boost to C++11 this made for having possibility to compile modulator software for LEDE/OpenWRT, but it's not fully complete (especially for telnet remote control and USRP driver), maybe it will be interesting to finalize it, so embedded devices will have less dependencies.

Here is diff on how it can be done:
piratfm@6dc0cdf

Replacing boost with std is welcome, but I'm unhappy about std::thread missing the interrupt() functionality. On my system it is actually necessary otherwise it will not stop properly. It has to be replaced by another way to wake up the sleeping thread.
I have a long flight on the 3rd, I'll look into it then. Of course, feel free to push more commits to your boost_to_cpp11 branch, I will follow it (No need to open a new pull request).
Thanks!

Since we already having dependency for posix threads, i'm thinking we can use it for creating threads that must have possibility to cancel like pthread_create() and after that pthtead_cancel(), so exception like in boost will be catched. Just not sure if all of threads must be cancelable.

branch boost_to_cpp11 is now in this repository too, and you have push rights. We can complete this work here.

My assumption that boost uses pthread_cancel was wrong, I checked the boost sources. I am currently wondering "how could it have worked?", and I will have to look into it further.

Review of goals: instead of removing boost completely, make boost optional when building ODR-DabMod for the EasyDABv3, which has part of the processing done in FPGA.
This will happen in next and the branch boost_to_cpp11 will not be used anymore.

Branch easydabv3 now compiles without boost.

ODR-DabMod next does not require boost anymore, and the telnet server should now also work for the easydabv3 build, although I didn't try.