Seastar
High performance C++ framework for concurrent servers
Classes | Namespaces | Typedefs | Functions | Variables
smp.hh File Reference
#include <seastar/core/future.hh>
#include <seastar/core/loop.hh>
#include <seastar/core/semaphore.hh>
#include <seastar/core/metrics.hh>
#include <seastar/core/posix.hh>
#include <seastar/core/reactor_config.hh>
#include <boost/lockfree/spsc_queue.hpp>
#include <boost/thread/barrier.hpp>
#include <boost/range/irange.hpp>
#include <boost/program_options.hpp>
#include <deque>
#include <thread>

Go to the source code of this file.

Classes

struct  seastar::smp_service_group_config
 
class  seastar::smp_service_group
 
struct  seastar::smp_submit_to_options
 Options controlling the behaviour of smp::submit_to(). More...
 
class  seastar::smp_message_queue
 
struct  seastar::smp_message_queue::tx_side::aa
 
class  seastar::smp
 

Namespaces

 seastar
 Seastar API namespace.
 

Typedefs

using seastar::smp_timeout_clock = lowres_clock
 
using seastar::smp_service_group_semaphore = basic_semaphore< named_semaphore_exception_factory, smp_timeout_clock >
 
using seastar::smp_service_group_semaphore_units = semaphore_units< named_semaphore_exception_factory, smp_timeout_clock >
 

Functions

shard_id seastar::this_shard_id () noexcept
 Returns shard_id of the of the current shard.
 
smp_service_group seastar::default_smp_service_group () noexcept
 
future< smp_service_group > seastar::create_smp_service_group (smp_service_group_config ssgc) noexcept
 
future seastar::destroy_smp_service_group (smp_service_group ssg) noexcept
 
void seastar::init_default_smp_service_group (shard_id cpu)
 
smp_service_group_semaphore & seastar::get_smp_service_groups_semaphore (unsigned ssg_id, shard_id t) noexcept
 

Variables

static constexpr smp_timeout_clock::time_point seastar::smp_no_timeout = smp_timeout_clock::time_point::max()
 

Class Documentation

◆ seastar::smp_service_group_config

struct seastar::smp_service_group_config
Class Members
optional< sstring > group_name

An optional name for this smp group

If this optional is engaged, timeout exception messages of the group's semaphores will indicate the group's name.

unsigned max_nonlocal_requests

The maximum number of non-local requests that execute on a shard concurrently

Will be adjusted upwards to allow at least one request per non-local shard.