Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions crates/bindings-cpp/include/spacetimedb/procedure_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ struct is_valid_procedure_return_type : std::integral_constant<bool, bsatn::Seri
} \
\
/* The actual procedure function definition */ \
return_type procedure_name(ctx_param __VA_OPT__(,) __VA_ARGS__)
/* noinline ensures this function appears as a named frame in backtraces */ \
__attribute__((noinline)) return_type procedure_name(ctx_param __VA_OPT__(,) __VA_ARGS__)

#define SPACETIMEDB_PROCEDURE_NAMED(return_type, procedure_name, canonical_name, ctx_param, ...) \
static_assert(::SpacetimeDB::Internal::is_valid_procedure_return_type<return_type>::value, \
Expand All @@ -120,4 +121,4 @@ struct is_valid_procedure_return_type : std::integral_constant<bool, bsatn::Seri
#procedure_name, procedure_name, param_names); \
SpacetimeDB::Module::RegisterExplicitFunctionName(#procedure_name, canonical_name); \
} \
return_type procedure_name(ctx_param __VA_OPT__(,) __VA_ARGS__)
__attribute__((noinline)) return_type procedure_name(ctx_param __VA_OPT__(,) __VA_ARGS__)
11 changes: 6 additions & 5 deletions crates/bindings-cpp/include/spacetimedb/reducer_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@
} \
\
/* The actual reducer function definition - returns ReducerResult */ \
SpacetimeDB::ReducerResult name(ctx_param __VA_OPT__(,) __VA_ARGS__)
/* noinline ensures this function appears as a named frame in backtraces */ \
__attribute__((noinline)) SpacetimeDB::ReducerResult name(ctx_param __VA_OPT__(,) __VA_ARGS__)

#define SPACETIMEDB_REDUCER_NAMED(name, canonical_name, ctx_param, ...) \
SpacetimeDB::ReducerResult name(ctx_param __VA_OPT__(,) __VA_ARGS__); \
Expand All @@ -84,7 +85,7 @@
SpacetimeDB::Internal::getV10Builder().RegisterReducer(#name, name, param_names); \
SpacetimeDB::Module::RegisterExplicitFunctionName(#name, canonical_name); \
} \
SpacetimeDB::ReducerResult name(ctx_param __VA_OPT__(,) __VA_ARGS__)
__attribute__((noinline)) SpacetimeDB::ReducerResult name(ctx_param __VA_OPT__(,) __VA_ARGS__)

// -----------------------------------------------------------------------------
// Lifecycle Reducer Macros
Expand Down Expand Up @@ -115,7 +116,7 @@
extern "C" void CONCAT(_preinit_register_init_reducer_, function_name)() { \
::SpacetimeDB::Internal::getV10Builder().RegisterLifecycleReducer(#function_name, function_name, ::SpacetimeDB::Internal::Lifecycle::Init); \
} \
SpacetimeDB::ReducerResult function_name(ctx_param)
__attribute__((noinline)) SpacetimeDB::ReducerResult function_name(ctx_param)

/**
* @brief Macro for defining a client_connected reducer
Expand All @@ -139,7 +140,7 @@
extern "C" void CONCAT(_preinit_register_client_connected_, function_name)() { \
::SpacetimeDB::Internal::getV10Builder().RegisterLifecycleReducer(#function_name, function_name, ::SpacetimeDB::Internal::Lifecycle::OnConnect); \
} \
SpacetimeDB::ReducerResult function_name(ctx_param)
__attribute__((noinline)) SpacetimeDB::ReducerResult function_name(ctx_param)

/**
* @brief Macro for defining a client_disconnected reducer
Expand All @@ -163,4 +164,4 @@
extern "C" void CONCAT(_preinit_register_client_disconnected_, function_name)() { \
::SpacetimeDB::Internal::getV10Builder().RegisterLifecycleReducer(#function_name, function_name, ::SpacetimeDB::Internal::Lifecycle::OnDisconnect); \
} \
SpacetimeDB::ReducerResult function_name(ctx_param)
__attribute__((noinline)) SpacetimeDB::ReducerResult function_name(ctx_param)
5 changes: 3 additions & 2 deletions crates/bindings-cpp/include/spacetimedb/view_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ struct is_valid_view_return_type<std::optional<T>>
\
/* TODO: When parameters are supported, function definition becomes: */ \
/* return_type view_name(ctx_param, __VA_ARGS__) */ \
return_type view_name(ctx_param)
/* noinline ensures this function appears as a named frame in backtraces */ \
__attribute__((noinline)) return_type view_name(ctx_param)

#define SPACETIMEDB_VIEW_NAMED(return_type, view_name, canonical_name, access_enum, ctx_param) \
static_assert(access_enum == SpacetimeDB::Internal::TableAccess::Public, \
Expand All @@ -130,4 +131,4 @@ struct is_valid_view_return_type<std::optional<T>>
#view_name, view_name, is_public, param_names); \
SpacetimeDB::Module::RegisterExplicitFunctionName(#view_name, canonical_name); \
} \
return_type view_name(ctx_param)
__attribute__((noinline)) return_type view_name(ctx_param)

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar
)
);

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public byte[] Invoke(
System.IO.BinaryReader reader,
global::SpacetimeDB.Internal.IViewContext ctx
Expand Down Expand Up @@ -477,6 +480,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Reducers.DemoReducer((SpacetimeDB.ReducerContext)ctx, valueRW.Read(reader));
Expand All @@ -495,6 +501,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar
Visibility: SpacetimeDB.Internal.FunctionVisibility.ClientCallable
);

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public byte[] Invoke(BinaryReader reader, SpacetimeDB.Internal.IProcedureContext ctx)
{
Reducers.DemoProcedure((SpacetimeDB.ProcedureContext)ctx);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1722,6 +1722,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar
)
);

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public byte[] Invoke(
System.IO.BinaryReader reader,
global::SpacetimeDB.Internal.IViewContext ctx
Expand Down Expand Up @@ -1764,6 +1767,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar
>().GetAlgebraicType(registrar)
);

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public byte[] Invoke(
System.IO.BinaryReader reader,
global::SpacetimeDB.Internal.IViewContext ctx
Expand Down Expand Up @@ -1811,6 +1817,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar
>().GetAlgebraicType(registrar)
);

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public byte[] Invoke(
System.IO.BinaryReader reader,
global::SpacetimeDB.Internal.IAnonymousViewContext ctx
Expand Down Expand Up @@ -2286,6 +2295,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => SpacetimeDB.Internal.Lifecycle.Init;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Timers.Init((SpacetimeDB.ReducerContext)ctx);
Expand All @@ -2309,6 +2321,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Reducers.InsertData((SpacetimeDB.ReducerContext)ctx, dataRW.Read(reader));
Expand All @@ -2332,6 +2347,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Test.NestingNamespaces.AndClasses.InsertData2(
Expand All @@ -2358,6 +2376,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
MultiTableRow.InsertMultiData((SpacetimeDB.ReducerContext)ctx, dataRW.Read(reader));
Expand All @@ -2381,6 +2402,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Reducers.ScheduleImmediate((SpacetimeDB.ReducerContext)ctx, dataRW.Read(reader));
Expand All @@ -2404,6 +2428,9 @@ SpacetimeDB.BSATN.ITypeRegistrar registrar

public SpacetimeDB.Internal.Lifecycle? Lifecycle => null;

[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining
)]
public void Invoke(BinaryReader reader, SpacetimeDB.Internal.IReducerContext ctx)
{
Timers.SendScheduledMessage((SpacetimeDB.ReducerContext)ctx, argRW.Read(reader));
Expand Down
Loading
Loading