Show EOL distros:
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Author: Daniel Stonier (d.stonier@gmail.com)
- License: BSD
- External website: http://yujin.dnsdojo.com:3000/wiki/ycs/
- Source: svn https://embedded-control-library.googlecode.com/svn/trunk/ecl_core
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Author: Daniel Stonier (d.stonier@gmail.com)
- License: BSD
- External website: http://yujin.dnsdojo.com:3000/wiki/ycs/
- Source: svn https://embedded-control-library.googlecode.com/svn/tags/ecl_core/fuerte
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: developed
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: groovy-devel)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: developed
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: hydro-devel)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: maintained
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: release/0.61-indigo-kinetic)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: developed
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: devel)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: developed
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: release/0.61-indigo-kinetic)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: maintained
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: release/0.62-melodic)
Package Summary
This package provides the c++ extensions for a variety of threaded programming tools. These are usually different on different platforms, so the architecture for a cross-platform framework is also implemented.
- Maintainer status: maintained
- Maintainer: Daniel Stonier <d.stonier AT gmail DOT com>
- Author: Daniel Stonier <d.stonier AT gmail DOT com>
- License: BSD
- Bug / feature tracker: https://github.com/stonier/ecl_core/issues
- Source: git https://github.com/stonier/ecl_core.git (branch: release/0.62-noetic)
Features
Mutex - multi-thread variable protection.
Thread - raii style one-shot thread class.
Threadable - an inheritable thread interface.
There are also a few methods for setting thread/process priorities.
Cross Platform Support
Currently the windows code is available, but not currently present (need to port it from the old version of ecl) because it isn't getting used/tested frequently. It can be added back in when and as needed quickly as the framework is still in place.
Compiling & Linking
Include the following at the top of any translation unit:
1 #include <ecl/threads.hpp>
2
3 // The thread classes
4 using ecl::Mutex;
5 using ecl::Thread;
6 using ecl::Threadable;
7
8 // Priorities
9 using ecl::set_priority;
10 using ecl::get_priority;
11 using ecl::print_priority_diagnostics;
12 using ecl::BackgroundPriority;
13 using ecl::LowPriority;
14 using ecl::NormalPriority;
15 using ecl::HighPriority;
16 using ecl::CriticalPriority;
17 using ecl::RealTimePriority1;
18 using ecl::RealTimePriority2;
19 using ecl::RealTimePriority3;
20 using ecl::RealTimePriority4;
If using catkin with ROS, you should make sure to declare a dependency on ecl_threads in your package.xml and find_package ecl_threads in your CMakeLists.txt:
find_package(catkin REQUIRED COMPONENTS ecl_threads # other dependencies ... )
If outside ros, you will also need to link to ecl_threads.
Tutorials
Thread : threading functionality via composition.
Threadable : threading functionality via inheritance.
Thread Locks : locking threads to protect shared data.
Priorities : setting thread or process scheduling priorities.