MT Core (C++)
Core library for replacing C++ standard in project usage
Loading...
Searching...
No Matches
core.hpp File Reference
#include <mutex>
#include "mtcore.hpp"
Include dependency graph for thread/mtcore_thread/core.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mtcore
 Core library for C++ with Zig-related functionality.
 
namespace  mtcore::thread
 Thread-related namespace The methods and classes provided by this class are thread-safe Classes and methods provided outside of this class are not thread-safe (with the exception of malloc_alloc) This requires linking mtcore_thread to your application.
 

Macros

#define MTCORE_THREAD_IMPL_NAME1(X, Y, S, N, SEP)
 
#define MTCORE_THREAD_IMPL_NAME(X, Y, S, N)
 
#define MTCORE_THREAD_SHORT_NAME(X, Y)
 
#define mt_print_cur_stacktrace(...)
 
#define mt_print_stacktrace(TRACE, ...)
 

Macro Definition Documentation

◆ mt_print_cur_stacktrace

#define mt_print_cur_stacktrace ( ...)
Value:
{ \
auto MTCORE_THREAD_SHORT_NAME(stack_lock, __LINE__) = std::unique_lock{mtcore::thread::impl::stackTraceMux}; \
(void) fprintf(stderr, __VA_ARGS__); \
(void) fflush(stderr); \
cpptrace::stacktrace::current(1).print(std::cerr); \
}
#define MTCORE_THREAD_SHORT_NAME(X, Y)

Definition at line 44 of file thread/mtcore_thread/core.hpp.

44#define mt_print_cur_stacktrace(...) \
45 { \
46 auto MTCORE_THREAD_SHORT_NAME(stack_lock, __LINE__) = std::unique_lock{mtcore::thread::impl::stackTraceMux}; \
47 (void) fprintf(stderr, __VA_ARGS__); \
48 (void) fflush(stderr); \
49 cpptrace::stacktrace::current(1).print(std::cerr); \
50 }

◆ mt_print_stacktrace

#define mt_print_stacktrace ( TRACE,
... )
Value:
{ \
auto MTCORE_THREAD_SHORT_NAME(stack_lock, __LINE__) = std::unique_lock{mtcore::thread::impl::stackTraceMux}; \
(void) fprintf(stderr, __VA_ARGS__); \
(void) fflush(stderr); \
(TRACE).print(std::cerr); \
}

Definition at line 52 of file thread/mtcore_thread/core.hpp.

52#define mt_print_stacktrace(TRACE, ...) \
53 { \
54 auto MTCORE_THREAD_SHORT_NAME(stack_lock, __LINE__) = std::unique_lock{mtcore::thread::impl::stackTraceMux}; \
55 (void) fprintf(stderr, __VA_ARGS__); \
56 (void) fflush(stderr); \
57 (TRACE).print(std::cerr); \
58 }

◆ MTCORE_THREAD_IMPL_NAME

#define MTCORE_THREAD_IMPL_NAME ( X,
Y,
S,
N )
Value:
#define MTCORE_THREAD_IMPL_NAME1(X, Y, S, N, SEP)

Definition at line 29 of file thread/mtcore_thread/core.hpp.

◆ MTCORE_THREAD_IMPL_NAME1

#define MTCORE_THREAD_IMPL_NAME1 ( X,
Y,
S,
N,
SEP )
Value:
X##SEP##Y##SEP##S##SEP##N

Definition at line 28 of file thread/mtcore_thread/core.hpp.

◆ MTCORE_THREAD_SHORT_NAME

#define MTCORE_THREAD_SHORT_NAME ( X,
Y )
Value:

Definition at line 30 of file thread/mtcore_thread/core.hpp.