XPROF_MemBuf_grow,
XPROF_InvokeHandlers,
XPROF_HttpMsg_httpMsgParseStep,
+ XPROF_EventDispatcher_dispatch,
+ XPROF_SignalDispatcher_dispatch,
+ XPROF_Temp1,
+ XPROF_Temp2,
+ XPROF_Temp3,
+ XPROF_clientSocketRecipient,
+ XPROF_httpStart,
XPROF_LAST
} xprof_type;
/*
- * $Id: client_side.cc,v 1.735 2006/09/20 06:29:10 adrian Exp $
+ * $Id: client_side.cc,v 1.736 2006/09/25 15:04:06 adrian Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
int fd;
/* Test preconditions */
assert(node != NULL);
+ PROF_start(clientSocketRecipient);
/* TODO: handle this rather than asserting
* - it should only ever happen if we cause an abort and
* the callback chain loops back to here, so we can simply return.
if (context != http->getConn()->getCurrentContext()) {
context->deferRecipientForLater(node, rep, recievedData);
+ PROF_stop(clientSocketRecipient);
return;
}
if (responseFinishedOrFailed(rep, recievedData)) {
context->writeComplete(fd, NULL, 0, COMM_OK);
+ PROF_stop(clientSocketRecipient);
return;
}
http->al.reply = HTTPMSGLOCK(rep);
context->sendStartOfMessage(rep, recievedData);
}
+ PROF_stop(clientSocketRecipient);
}
/* Called when a downstream node is no longer interested in
/*
- * $Id: client_side_reply.cc,v 1.112 2006/08/25 15:22:34 serassio Exp $
+ * $Id: client_side_reply.cc,v 1.113 2006/09/25 15:04:06 adrian Exp $
*
* DEBUG: section 88 Client-side Reply Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
if (r->flags.cachable || r->flags.internal) {
lookingforstore = 5;
StoreEntry::getPublicByRequest (this, r);
- } else
+ } else {
identifyFoundObject (NullStoreEntry::getInstance());
+ }
}
void
assert (context);
assert(context->http == http);
+
clientStreamNode *next = ( clientStreamNode *)aNode->node.next->data;
if (!context->ourNode)
clientReplyContext::doGetMoreData()
{
/* We still have to do store logic processing - vary, cache hit etc */
-
if (http->storeEntry() != NULL) {
/* someone found the object in the cache for us */
StoreIOBuffer tempBuffer;
tempBuffer.offset = reqofs;
tempBuffer.length = getNextNode()->readBuffer.length;
tempBuffer.data = getNextNode()->readBuffer.data;
- storeClientCopy(sc, http->storeEntry(),
- tempBuffer, CacheHit, this);
+ storeClientCopy(sc, http->storeEntry(), tempBuffer, CacheHit, this);
} else {
/* MISS CASE, http->logType is already set! */
processMiss();
sendStreamError(tempBuffer);
return;
}
-
fatal ("clientReplyContext::sendMoreData: Unreachable code reached \n");
}
/*
- * $Id: client_side_request.cc,v 1.73 2006/09/20 22:26:24 hno Exp $
+ * $Id: client_side_request.cc,v 1.74 2006/09/25 15:04:07 adrian Exp $
*
* DEBUG: section 85 Client-side Request Routines
* AUTHOR: Robert Collins (Originally Duane Wessels in client_side.c)
void
ClientHttpRequest::httpStart()
{
+ PROF_start(httpStart);
logType = LOG_TAG_NONE;
debug(85, 4) ("ClientHttpRequest::httpStart: %s for '%s'\n",
log_tags[logType], uri);
/* Use the Stream Luke */
clientStreamNode *node = (clientStreamNode *)client_stream.tail->data;
clientStreamRead(node, this, node->readBuffer);
+ PROF_stop(httpStart);
}
bool
/*
- * $Id: comm.cc,v 1.426 2006/09/23 07:16:07 adrian Exp $
+ * $Id: comm.cc,v 1.427 2006/09/25 15:04:07 adrian Exp $
*
* DEBUG: section 5 Socket Functions
* AUTHOR: Harvest Derived
assert(data == COMMIO_FD_READCB(fd));
assert(commio_has_callback(fd, IOCB_READ, ccb));
-
/* Attempt a read */
statCounter.syscalls.sock.reads++;
errno = 0;
/*
- * $Id: event.cc,v 1.44 2006/09/01 23:56:38 hno Exp $
+ * $Id: event.cc,v 1.45 2006/09/25 15:04:07 adrian Exp $
*
* DEBUG: section 41 Event Processing
* AUTHOR: Henrik Nordstrom
{
bool result = queue.size() != 0;
+ PROF_start(EventDispatcher_dispatch);
for (Vector<ev_entry *>::iterator i = queue.begin(); i != queue.end(); ++i) {
ev_entry * event = *i;
EVH *callback;
}
queue.clean();
+ PROF_stop(EventDispatcher_dispatch);
return result;
}
/*
- * $Id: main.cc,v 1.436 2006/09/13 18:55:10 serassio Exp $
+ * $Id: main.cc,v 1.437 2006/09/25 15:04:07 adrian Exp $
*
* DEBUG: section 1 Startup and Main Loop
* AUTHOR: Harvest Derived
bool
SignalDispatcher::dispatch()
{
+ PROF_start(SignalDispatcher_dispatch);
if (do_reconfigure) {
mainReconfigure();
do_reconfigure = 0;
bool result = events_dispatched;
events_dispatched = false;
+ PROF_stop(SignalDispatcher_dispatch);
return result;
}