projects
/
citadel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
EV: expose current event queue state to the RWHO command
[citadel.git]
/
citadel
/
modules
/
eventclient
/
serv_eventclient.c
diff --git
a/citadel/modules/eventclient/serv_eventclient.c
b/citadel/modules/eventclient/serv_eventclient.c
index 01492e56c437900bed34673196dc484f2908a2a2..e08a39f284b08917421e1d424f466f8551829187 100644
(file)
--- a/
citadel/modules/eventclient/serv_eventclient.c
+++ b/
citadel/modules/eventclient/serv_eventclient.c
@@
-147,6
+147,7
@@
gotstatus(int nnrun)
IO);
continue;
}
IO);
continue;
}
+ SetEVState(IO, eCurlGotStatus);
EVCURLM_syslog(LOG_DEBUG, "request complete\n");
EVCURLM_syslog(LOG_DEBUG, "request complete\n");
@@
-186,7
+187,7
@@
gotstatus(int nnrun)
"%s\n",
curl_multi_strerror(msta));
"%s\n",
curl_multi_strerror(msta));
- ev_cleanup_stop(event_base, &IO->abort_by_shutdown);
+
ev_cleanup_stop(event_base, &IO->abort_by_shutdown);
IO->HttpReq.attached = 0;
switch(IO->SendDone(IO))
IO->HttpReq.attached = 0;
switch(IO->SendDone(IO))
@@
-272,9
+273,11
@@
got_out(struct ev_loop *loop, ev_io *ioev, int events)
}
static size_t
}
static size_t
-gotdata(void *data, size_t size, size_t nmemb, void *cglobal) {
+gotdata(void *data, size_t size, size_t nmemb, void *cglobal)
+{
AsyncIO *IO = (AsyncIO*) cglobal;
AsyncIO *IO = (AsyncIO*) cglobal;
+ SetEVState(IO, eCurlGotData);
if (IO->HttpReq.ReplyData == NULL)
{
IO->HttpReq.ReplyData = NewStrBufPlain(NULL, SIZ);
if (IO->HttpReq.ReplyData == NULL)
{
IO->HttpReq.ReplyData = NewStrBufPlain(NULL, SIZ);
@@
-323,6
+326,7
@@
gotwatchsock(CURL *easy,
return -1;
}
IO = (AsyncIO *) f;
return -1;
}
IO = (AsyncIO *) f;
+ SetEVState(IO, eCurlNewIO);
EVCURL_syslog(LOG_DEBUG,
"EVCURL: got socket for URL: %s\n",
IO->ConnectMe->PlainUrl);
EVCURL_syslog(LOG_DEBUG,
"EVCURL: got socket for URL: %s\n",
IO->ConnectMe->PlainUrl);
@@
-338,6
+342,7
@@
gotwatchsock(CURL *easy,
curl_multi_assign(mhnd, fd, IO);
}
curl_multi_assign(mhnd, fd, IO);
}
+ SetEVState(IO, eCurlGotIO);
IO->Now = ev_now(event_base);
Action = "";
IO->Now = ev_now(event_base);
Action = "";
@@
-495,6
+500,8
@@
static void IOcurl_abort_shutdown_callback(struct ev_loop *loop,
if (IO == NULL)
return;
if (IO == NULL)
return;
+
+ SetEVState(IO, eCurlShutdown);
IO->Now = ev_now(event_base);
EVCURL_syslog(LOG_DEBUG, "EVENT Curl: %s\n", __FUNCTION__);
IO->Now = ev_now(event_base);
EVCURL_syslog(LOG_DEBUG, "EVENT Curl: %s\n", __FUNCTION__);
@@
-523,6
+530,7
@@
evcurl_handle_start(AsyncIO *IO)
CURLcode sta;
CURL *chnd;
CURLcode sta;
CURL *chnd;
+ SetEVState(IO, eCurlStart);
chnd = IO->HttpReq.chnd;
EVCURL_syslog(LOG_DEBUG,
"EVCURL: Loading URL: %s\n", IO->ConnectMe->PlainUrl);
chnd = IO->HttpReq.chnd;
EVCURL_syslog(LOG_DEBUG,
"EVCURL: Loading URL: %s\n", IO->ConnectMe->PlainUrl);
@@
-631,6
+639,8
@@
static void QueueEventAddCallback(EV_P_ ev_async *w, int revents)
if (h->IO->StartIO == 0.0)
h->IO->StartIO = Now;
if (h->IO->StartIO == 0.0)
h->IO->StartIO = Now;
+ SetEVState(h->IO, eIOAttach);
+
Ctx = h->IO->CitContext;
become_session(Ctx);
Ctx = h->IO->CitContext;
become_session(Ctx);
@@
-779,6
+789,7
@@
static void DBQueueEventAddCallback(EV_P_ ev_async *w, int revents)
h->IO->StartDB = Now;
h->IO->Now = Now;
h->IO->StartDB = Now;
h->IO->Now = Now;
+ SetEVState(h->IO, eDBAttach);
Ctx = h->IO->CitContext;
become_session(Ctx);
ev_cleanup_start(event_db, &h->IO->db_abort_by_shutdown);
Ctx = h->IO->CitContext;
become_session(Ctx);
ev_cleanup_start(event_db, &h->IO->db_abort_by_shutdown);