Seastar
High performance C++ framework for concurrent servers
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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_registration.hh>
#include <seastar/core/posix.hh>
#include <seastar/core/reactor_config.hh>
#include <seastar/core/resource.hh>
#include <seastar/core/shard_id.hh>
#include <seastar/util/modules.hh>
#include <boost/lockfree/spsc_queue.hpp>
#include <boost/thread/barrier.hpp>
#include <deque>
#include <optional>
#include <thread>
#include <ranges>

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

namespace  seastar
 Seastar API namespace.
 
namespace  seastar::alien
 Integration with non-seastar applications.
 
namespace  seastar::memory
 

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

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.