mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 08:54:40 +00:00
Sync to Wine-0_9_5:
Robert Shearman <rob@codeweavers.com> - rpcrt4: Fix race condition in RpcServerListen. The DontWait parameter is used for forcing the function not to wait for the server to finish. - rpcrt4: Implement callback conformance. svn path=/trunk/; revision=20624
This commit is contained in:
parent
5a108e0a20
commit
8f6437a0a0
|
@ -375,9 +375,17 @@ PFORMAT_STRING ComputeConformanceOrVariance(
|
||||||
ptr = *(LPVOID*)ptr;
|
ptr = *(LPVOID*)ptr;
|
||||||
break;
|
break;
|
||||||
case RPC_FC_CALLBACK:
|
case RPC_FC_CALLBACK:
|
||||||
|
{
|
||||||
|
unsigned char *old_stack_top = pStubMsg->StackTop;
|
||||||
|
pStubMsg->StackTop = ptr;
|
||||||
|
|
||||||
/* ofs is index into StubDesc->apfnExprEval */
|
/* ofs is index into StubDesc->apfnExprEval */
|
||||||
FIXME("handle callback\n");
|
TRACE("callback conformance into apfnExprEval[%d]\n", ofs);
|
||||||
|
pStubMsg->StubDesc->apfnExprEval[ofs](pStubMsg);
|
||||||
|
|
||||||
|
pStubMsg->StackTop = old_stack_top;
|
||||||
goto finish_conf;
|
goto finish_conf;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -989,6 +989,9 @@ RPC_STATUS WINAPI RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT
|
||||||
|
|
||||||
status = RPCRT4_start_listen(FALSE);
|
status = RPCRT4_start_listen(FALSE);
|
||||||
|
|
||||||
|
if (status == RPC_S_OK)
|
||||||
|
RPCRT4_sync_with_server_thread();
|
||||||
|
|
||||||
if (DontWait || (status != RPC_S_OK)) return status;
|
if (DontWait || (status != RPC_S_OK)) return status;
|
||||||
|
|
||||||
return RpcMgmtWaitServerListen();
|
return RpcMgmtWaitServerListen();
|
||||||
|
@ -1010,8 +1013,6 @@ RPC_STATUS WINAPI RpcMgmtWaitServerListen( void )
|
||||||
|
|
||||||
LeaveCriticalSection(&listen_cs);
|
LeaveCriticalSection(&listen_cs);
|
||||||
|
|
||||||
RPCRT4_sync_with_server_thread();
|
|
||||||
|
|
||||||
return RPC_S_OK;
|
return RPC_S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue