Commit 534033a5 authored by Kirill Smelkov's avatar Kirill Smelkov

internal/atomic: Adjust to support MSVC

There is no fork on windows and that we do not need to install atfork
handler at all.

    golang/runtime/internal/atomic.cpp(23): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory
parent 5098decb
// Copyright (C) 2022 Nexedi SA and Contributors. // Copyright (C) 2022-2023 Nexedi SA and Contributors.
// Kirill Smelkov <kirr@nexedi.com> // Kirill Smelkov <kirr@nexedi.com>
// //
// This program is free software: you can Use, Study, Modify and Redistribute // This program is free software: you can Use, Study, Modify and Redistribute
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
#include "golang/runtime/internal/atomic.h" #include "golang/runtime/internal/atomic.h"
#include "golang/libgolang.h" #include "golang/libgolang.h"
#ifndef _WIN32
#include <pthread.h> #include <pthread.h>
#endif
// golang::internal::atomic:: // golang::internal::atomic::
namespace golang { namespace golang {
...@@ -41,9 +43,12 @@ static void _forkNewEpoch() { ...@@ -41,9 +43,12 @@ static void _forkNewEpoch() {
} }
void _init() { void _init() {
// there is no fork on windows
#ifndef _WIN32
int e = pthread_atfork(/*prepare*/nil, /*inparent*/nil, /*inchild*/_forkNewEpoch); int e = pthread_atfork(/*prepare*/nil, /*inparent*/nil, /*inchild*/_forkNewEpoch);
if (e != 0) if (e != 0)
panic("pthread_atfork failed"); panic("pthread_atfork failed");
#endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment