diff options
author | imarom <imarom@cisco.com> | 2016-05-08 10:57:57 +0300 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2016-05-09 16:48:15 +0300 |
commit | 75ce59e5652f9094beab854d263a850cfc81a3de (patch) | |
tree | 10e7216b433aaae1888850a59f48e9c1df84af65 /src/bp_sim.cpp | |
parent | 8691f4019dc2123c1aa7413cf3666138756c2f66 (diff) |
PCAP refinement
Diffstat (limited to 'src/bp_sim.cpp')
-rwxr-xr-x | src/bp_sim.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp index 2491d122..18b1053e 100755 --- a/src/bp_sim.cpp +++ b/src/bp_sim.cpp @@ -3713,17 +3713,14 @@ int CNodeGenerator::flush_file(dsec_t max_time, m_p_queue.pop(); CGenNodePCAP *node_pcap = (CGenNodePCAP *)node; - node_pcap->handle(thread); - - if (node_pcap->has_next()) { - node_pcap->next(); - node_pcap->m_time += node_pcap->get_ipg(); - m_p_queue.push(node); - } else { - thread->free_node(node); - thread->m_stateless_dp_info.stop_traffic(node_pcap->get_port_id(), false, 0); + /* might have been marked for free */ + if ( unlikely( node_pcap->is_marked_for_free() ) ) { + thread->free_node(node); + } else { + node_pcap->handle(thread); } + } else { bool exit_sccheduler = handle_slow_messages(type,node,thread,always); |