|
pion-net
4.0.9
|
#include <PionScheduler.hpp>
Inherits pion::PionMultiThreadScheduler.
Classes | |
| struct | ServicePair |
| typedef for a pair object where first is an IO service and second is a deadline timer More... | |
Public Member Functions | |
| PionOneToOneScheduler (void) | |
| constructs a new PionOneToOneScheduler | |
| virtual | ~PionOneToOneScheduler () |
| virtual destructor | |
| virtual boost::asio::io_service & | getIOService (void) |
| returns an async I/O service used to schedule work | |
| virtual boost::asio::io_service & | getIOService (boost::uint32_t n) |
| virtual void | startup (void) |
| Starts the thread scheduler (this is called automatically when necessary) | |
Public Member Functions inherited from pion::PionMultiThreadScheduler | |
| PionMultiThreadScheduler (void) | |
| constructs a new PionSingleServiceScheduler | |
| virtual | ~PionMultiThreadScheduler () |
| virtual destructor | |
Public Member Functions inherited from pion::PionScheduler | |
| PionScheduler (void) | |
| constructs a new PionScheduler | |
| virtual | ~PionScheduler () |
| virtual destructor | |
| virtual void | shutdown (void) |
| Stops the thread scheduler (this is called automatically when the program exits) | |
| void | join (void) |
| the calling thread will sleep until the scheduler has stopped | |
| void | addActiveUser (void) |
| void | removeActiveUser (void) |
| unregisters an active user with the thread scheduler | |
| bool | isRunning (void) const |
| returns true if the scheduler is running | |
| void | setNumThreads (const boost::uint32_t n) |
| sets the number of threads to be used (these are shared by all servers) | |
| boost::uint32_t | getNumThreads (void) const |
| returns the number of threads currently in use | |
| void | setLogger (PionLogger log_ptr) |
| sets the logger to be used | |
| PionLogger | getLogger (void) |
| returns the logger currently in use | |
| virtual void | post (boost::function0< void > work_func) |
| void | keepRunning (boost::asio::io_service &my_service, boost::asio::deadline_timer &my_timer) |
| void | processServiceWork (boost::asio::io_service &service) |
| processes work passed to the asio service & handles uncaught exceptions | |
Protected Types | |
| typedef std::vector< boost::shared_ptr< ServicePair > > | ServicePool |
| typedef for a pool of IO services | |
Protected Types inherited from pion::PionMultiThreadScheduler | |
| typedef std::vector< boost::shared_ptr< boost::thread > > | ThreadPool |
| typedef for a pool of worker threads | |
Protected Member Functions | |
| virtual void | stopServices (void) |
| stops all services used to schedule work | |
| virtual void | finishServices (void) |
| finishes all services used to schedule work | |
Protected Member Functions inherited from pion::PionMultiThreadScheduler | |
| virtual void | stopThreads (void) |
| stops all threads used to perform work | |
| virtual void | finishThreads (void) |
| finishes all threads used to perform work | |
Protected Attributes | |
| ServicePool | m_service_pool |
| pool of IO services used to schedule work | |
| boost::uint32_t | m_next_service |
| the next service to use for scheduling work | |
Protected Attributes inherited from pion::PionMultiThreadScheduler | |
| ThreadPool | m_thread_pool |
| pool of threads used to perform work | |
Protected Attributes inherited from pion::PionScheduler | |
| boost::mutex | m_mutex |
| mutex to make class thread-safe | |
| PionLogger | m_logger |
| primary logging interface used by this class | |
| boost::condition | m_no_more_active_users |
| condition triggered when there are no more active users | |
| boost::condition | m_scheduler_has_stopped |
| condition triggered when the scheduler has stopped | |
| boost::uint32_t | m_num_threads |
| total number of worker threads in the pool | |
| boost::uint32_t | m_active_users |
| the scheduler will not shutdown until there are no more active users | |
| bool | m_is_running |
| true if the thread scheduler is running | |
Additional Inherited Members | |
Static Public Member Functions inherited from pion::PionScheduler | |
| static void | sleep (boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec) |
| template<typename ConditionType , typename LockType > | |
| static void | sleep (ConditionType &wakeup_condition, LockType &wakeup_lock, boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec) |
Static Protected Member Functions inherited from pion::PionScheduler | |
| static boost::xtime | getWakeupTime (boost::uint32_t sleep_sec, boost::uint32_t sleep_nsec) |
Static Protected Attributes inherited from pion::PionScheduler | |
| static const boost::uint32_t | DEFAULT_NUM_THREADS = 8 |
| default number of worker threads in the thread pool | |
| static const boost::uint32_t | NSEC_IN_SECOND = 1000000000 |
| number of nanoseconds in one full second (10 ^ 9) | |
| static const boost::uint32_t | MICROSEC_IN_SECOND = 1000000 |
| number of microseconds in one full second (10 ^ 6) | |
| static const boost::uint32_t | KEEP_RUNNING_TIMER_SECONDS = 5 |
| number of seconds a timer should wait for to keep the IO services running | |
PionOneToOneScheduler: uses a single IO service for each thread
Definition at line 286 of file PionScheduler.hpp.
|
inlinevirtual |
returns an async I/O service used to schedule work (provides direct access to avoid locking when possible)
| n | integer number representing the service object |
Definition at line 318 of file PionScheduler.hpp.
1.8.11