[xmppd-dev] commit r1558 - trunk/jabberd14/resolver
mail at jabberd.org
mail at jabberd.org
Sun Mar 22 02:40:21 CET 2009
Author: mawis
Date: Sun Mar 22 02:40:21 2009
New Revision: 1558
Log:
Do not delete resolver_job explicitly - we use xmppd::pointer for that
do not add new packets to a resolver_job, when it has already finished
keep the resolver_job in finished_jobs until it returned from event handling (TODO: cleanup finished_jobs after they have returned)
Modified:
trunk/jabberd14/resolver/resolver.cc
trunk/jabberd14/resolver/resolver.h
Modified: trunk/jabberd14/resolver/resolver.cc
==============================================================================
--- trunk/jabberd14/resolver/resolver.cc Sun Mar 22 02:08:40 2009 (r1557)
+++ trunk/jabberd14/resolver/resolver.cc Sun Mar 22 02:40:21 2009 (r1558)
@@ -196,6 +196,11 @@
}
void resolver::handle_completed_job(resolver_job& job) {
+ // move the job from pending to finished
+ char const* host = job.get_packets().front()->host;
+ finished_jobs.push_back(pending_jobs[host]);
+ pending_jobs.erase(host);
+
// get the packets
std::list<dpacket> const& packets = job.get_packets();
@@ -209,9 +214,6 @@
for (std::list<dpacket>::const_iterator p = packets.begin(); p != packets.end(); ++p) {
resend_packet((*p)->x, ips, resend_host);
}
-
- // we are done with it, we can delete the job
- delete &job;
}
}
}
Modified: trunk/jabberd14/resolver/resolver.h
==============================================================================
--- trunk/jabberd14/resolver/resolver.h Sun Mar 22 02:08:40 2009 (r1557)
+++ trunk/jabberd14/resolver/resolver.h Sun Mar 22 02:40:21 2009 (r1558)
@@ -380,6 +380,13 @@
xmppd::xhash< xmppd::pointer<resolver_job> > pending_jobs;
/**
+ * the jobs that have finished
+ *
+ * @todo we have to delete these jobs, after they returned
+ */
+ std::list< xmppd::pointer<resolver_job> > finished_jobs;
+
+ /**
* map containing the listeners for resolver results
*
* the key is the query serial which will be in the result
More information about the dev
mailing list