mirror of https://github.com/BOINC/boinc.git
MGR: Always treat quit RPCs as non-demand so Manager can exit when client is not responding
svn path=/trunk/boinc/; revision=18094
This commit is contained in:
parent
282bc21c3c
commit
da880ec5ae
|
@ -4504,3 +4504,11 @@ David 13 May 2009
|
|||
|
||||
html/ops/
|
||||
build_po.php
|
||||
|
||||
Charlie 13 May 2009
|
||||
- MGR: Always treat quit RPCs as non-demand so Manager can exit when
|
||||
client is not responding; don't remove currently active RPC request
|
||||
from queue when receiving a quit RPC request.
|
||||
|
||||
clientgui/
|
||||
AsyncRPC.cpp
|
||||
|
|
|
@ -100,8 +100,11 @@ int AsyncRPC::RPC_Wait(RPC_SELECTOR which_rpc, void *arg1, void *arg2,
|
|||
request.arg2 = arg2;
|
||||
request.arg3 = arg3;
|
||||
request.arg4 = arg4;
|
||||
if (which_rpc == RPC_QUIT) {
|
||||
request.rpcType = RPC_TYPE_ASYNC_NO_REFRESH;
|
||||
} else {
|
||||
request.rpcType = RPC_TYPE_WAIT_FOR_COMPLETION;
|
||||
|
||||
}
|
||||
retval = m_pDoc->RequestRPC(request, hasPriority);
|
||||
return retval;
|
||||
}
|
||||
|
@ -443,8 +446,13 @@ int CMainDocument::RequestRPC(ASYNC_RPC_REQUEST& request, bool hasPriority) {
|
|||
|
||||
// If we are quitting, cancel any pending RPCs
|
||||
if (request.which_rpc == RPC_QUIT) {
|
||||
if (current_rpc_request.isActive) {
|
||||
RPC_requests.erase(RPC_requests.begin()+1, RPC_requests.end());
|
||||
|
||||
} else {
|
||||
RPC_requests.clear();
|
||||
}
|
||||
}
|
||||
|
||||
// Check if a duplicate request is already on the queue
|
||||
for (iter=RPC_requests.begin(); iter!=RPC_requests.end(); iter++) {
|
||||
|
|
Loading…
Reference in New Issue