mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 07:23:53 +01:00
ircd::ctx::this_ctx: Fix inline namespace reopening for clang.
This commit is contained in:
parent
801f0d57b7
commit
ab32ef76d7
8 changed files with 22 additions and 15 deletions
|
@ -11,10 +11,11 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_CRITICAL_ASSERTION_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct critical_assertion; // Assert no yielding for a section
|
||||
}
|
||||
}}
|
||||
|
||||
/// An instance of critical_assertion detects an attempt to context switch.
|
||||
///
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_CRITICAL_INDICATOR_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct critical_indicator; // Indicates if yielding happened for a section
|
||||
}
|
||||
}}
|
||||
|
||||
/// An instance of critical_indicator reports if context switching happened.
|
||||
///
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_EXCEPTION_HANDLER_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct exception_handler;
|
||||
}
|
||||
}}
|
||||
|
||||
/// An instance of exception_handler must be present to allow a context
|
||||
/// switch inside a catch block. This is due to ABI limitations that stack
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_SLICE_USAGE_WARNING_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct slice_usage_warning;
|
||||
}
|
||||
}}
|
||||
|
||||
#ifndef NDEBUG
|
||||
struct ircd::ctx::this_ctx::slice_usage_warning
|
||||
|
|
|
@ -11,12 +11,13 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_STACK_USAGE_ASSERTION_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct stack_usage_assertion;
|
||||
|
||||
size_t stack_at_here() __attribute__((noinline));
|
||||
}
|
||||
}}
|
||||
|
||||
/// An instance of stack_usage_assertion is placed on a ctx stack where one
|
||||
/// wants to test the stack usage at both construction and destruction points
|
||||
|
|
|
@ -11,10 +11,11 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_SYSCALL_USAGE_WARNING_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct syscall_usage_warning;
|
||||
}
|
||||
}}
|
||||
|
||||
#ifndef NDEBUG
|
||||
struct ircd::ctx::this_ctx::syscall_usage_warning
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_THIS_CTX_H
|
||||
|
||||
namespace ircd::ctx {
|
||||
/// Interface to the currently running context
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct ctx &cur(); ///< Assumptional reference to *current
|
||||
|
|
|
@ -11,14 +11,15 @@
|
|||
#pragma once
|
||||
#define HAVE_IRCD_CTX_UNINTERRUPTIBLE_H
|
||||
|
||||
namespace ircd::ctx::this_ctx
|
||||
namespace ircd::ctx {
|
||||
inline namespace this_ctx
|
||||
{
|
||||
struct uninterruptible;
|
||||
|
||||
bool interruptible() noexcept;
|
||||
void interruptible(const bool &);
|
||||
void interruptible(const bool &, std::nothrow_t) noexcept;
|
||||
}
|
||||
}}
|
||||
|
||||
/// An instance of uninterruptible will suppress interrupts sent to the
|
||||
/// context for the scope. Suppression does not discard any interrupt,
|
||||
|
|
Loading…
Reference in a new issue