BIND 10 #3075: Implement Main Event Loop in D2Process
BIND 10 Development
do-not-reply at isc.org
Wed Jul 31 11:34:53 UTC 2013
#3075: Implement Main Event Loop in D2Process
-------------------------------------+-------------------------------------
Reporter: tmark | Owner:
Type: | Status: new
enhancement | Milestone: New Tasks
Priority: | Keywords: Task# 6.2.1
medium | Sensitive: 0
Component: dhcp- | Sub-Project: DHCP
ddns | Estimated Difficulty: 0
CVSS Scoring: | Total Hours: 0
Defect Severity: N/A |
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Task #6.2 from the task spread sheet. Develop event processing loop as
described in the DHCP-DDNS design, discussed in the "D2 Event Processing"
section.
Note that the original design calls for the event loop to be within the
update manager class. Subsequent refinement has moved it up,
intoD2Process. This ticket has been split off from 3059.
The initial implementation should assume/support single-threaded operation
(as excerpted from the design doc):
{{{
while (!shutdown) {
// Execute all ready callbacks, or wait for one
if (io_service.poll() || io_service.run_one()) {
// One or more of the following has occurred
// a. NCR message received and has been queued
// b. Pending DNS IO has completed
// c. Interval timer expired
if (QueueMgr->queueNotEmpty()) {
// Dequeue next pending request
NCR = QueueMgr->dequeue();
// Start a new transaction for the NCR
instantiate_transaction(io_service, NCR);
}
handle_finished_transactions();
} else {
// we are here because there is no more work to do
// somebody stopped io_service, shutdown request likely
culprit
}
}
}}}
--
Ticket URL: <http://bind10.isc.org/ticket/3075>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list