/*
- * $Id: peer_select.cc,v 1.66 1998/06/05 19:02:52 wessels Exp $
+ * $Id: peer_select.cc,v 1.67 1998/06/29 23:29:16 wessels Exp $
*
* DEBUG: section 44 Peer Selection Algorithm
* AUTHOR: Duane Wessels
}
requestUnlink(psstate->request);
psstate->request = NULL;
+ if (psstate->entry) {
+ storeUnlockObject(psstate->entry);
+ psstate->entry = NULL;
+ }
cbdataFree(psstate);
}
else
debug(44, 3) ("peerSelect: %s\n", RequestMethodStr[request->method]);
cbdataAdd(psstate, MEM_NONE);
+ storeLockObject(entry);
psstate->request = requestLink(request);
psstate->entry = entry;
psstate->callback = callback;
{
ps_state *psstate = data;
StoreEntry *entry = psstate->entry;
+ if (!cbdataValid(psstate->callback_data)) {
+ /* request aborted */
+ cbdataUnlock(psstate->callback_data);
+ peerSelectStateFree(psstate);
+ return;
+ }
if (entry)
debug(44, 3) ("peerPingTimeout: '%s'\n", storeUrl(entry));
entry->ping_status = PING_TIMEOUT;