[ https://bro-tracker.atlassian.net/browse/BIT-1408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=20915#comment-20915 ]
Robin Sommer commented on BIT-1408: ----------------------------------- instead of moving the fd_set pieces into PktSrc, what do you think of this: {code} +++ b/src/iosource/Manager.cc @@ -118,9 +118,17 @@ IOSource* Manager::FindSoonest(double* ts) src->Clear(); src->src->GetFds(&src->fd_read, &src->fd_write, &src->fd_except); - if ( src->fd_read.Empty() ) src->fd_read.Insert(0); - if ( src->fd_write.Empty() ) src->fd_write.Insert(0); - if ( src->fd_except.Empty() ) src->fd_except.Insert(0); + + if ( Size() ) + { + // TODO: This seems like a hack that should be removed, but doing so + // causes the main run loop to spin more frequently and increase cpu usage. + // See also commit 9cd85be308. + if ( src->fd_read.Empty() ) src->fd_read.Insert(0); + if ( src->fd_write.Empty() ) src->fd_write.Insert(0); + if ( src->fd_except.Empty() ) src->fd_except.Insert(0); + }; + {code} That passes the test-suite as well as Johanna's script. > Broker I/O loop issue > --------------------- > > Key: BIT-1408 > URL: https://bro-tracker.atlassian.net/browse/BIT-1408 > Project: Bro Issue Tracker > Issue Type: Problem > Components: Broker > Reporter: Robin Sommer > Fix For: 2.4 > > Attachments: patch.txt > > > This script from Johanna doesn't terminate: > {code} > redef exit_only_after_terminate = T; > event terminate_me() { > print "terminating"; > terminate(); > } > event bro_init() { > BrokerComm::enable(); > schedule 1sec { terminate_me() }; > } > {code} > It works once the {{enable()}} call is removed. > Attached patch seems solve the problem, but it might not be quite the right > fix, not sure yet. -- This message was sent by Atlassian JIRA (v6.5-OD-05-041#65001) _______________________________________________ bro-dev mailing list bro-dev@bro.org http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev