1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5#include "stdio.h"
6
7#pragma warning(push)
8#pragma warning(disable:4265 4577)
9 #include <thread>
10#pragma warning(pop)
11
12// Work around typedef redefinition: platformdefines.h defines error_t
13// as unsigned while it's defined as int in errno.h.
14#define error_t error_t_ignore
15#include <platformdefines.h>
16#undef error_t
17
18typedef void (*PFNACTION1)();
19
20extern "C" DLL_EXPORT void InvokeCallback(PFNACTION1 callback)
21{
22 callback();
23}
24
25extern "C" DLL_EXPORT void InvokeCallbackOnNewThread(PFNACTION1 callback)
26{
27 std::thread t1(InvokeCallback, callback);
28 t1.join();
29}