0
0
Fork 0
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:
Jason Volk 2019-06-23 00:08:46 -06:00
parent 801f0d57b7
commit ab32ef76d7
8 changed files with 22 additions and 15 deletions

View file

@ -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.
///

View file

@ -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.
///

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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,