Skip to content

Commit

Permalink
change to cdecl
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik Zhang committed May 19, 2016
1 parent a211cd6 commit 594f971
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
4 changes: 0 additions & 4 deletions leveldb.vcxproj
Expand Up @@ -92,7 +92,6 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CallingConvention>StdCall</CallingConvention>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
Expand All @@ -107,7 +106,6 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CallingConvention>StdCall</CallingConvention>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
Expand All @@ -122,7 +120,6 @@
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<CallingConvention>StdCall</CallingConvention>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
Expand All @@ -139,7 +136,6 @@
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<CallingConvention>StdCall</CallingConvention>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
Expand Down
18 changes: 17 additions & 1 deletion util/env_windows.cc
Expand Up @@ -463,8 +463,24 @@ void PosixEnv::BGThread() {
}
}

struct StartThreadContext {
void(*function)(void* arg);
void* arg;
};

DWORD WINAPI StartThreadCallback(LPVOID lpThreadParameter) {
StartThreadContext* context = (StartThreadContext*)lpThreadParameter;
void(*function)(void* arg) = context->function;
void* arg = context->arg;
delete context;
function(arg);
}

void PosixEnv::StartThread(void(*function)(void* arg), void* arg) {
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)function, arg, 0, NULL);
StartThreadContext* context = new StartThreadContext;
context->function = function;
context->arg = arg;
CreateThread(NULL, 0, StartThreadCallback, context, 0, NULL);
}

}
Expand Down

0 comments on commit 594f971

Please sign in to comment.