src/wifi/model/mac-low.cc
changeset 9176 41ab1e874804
parent 7385 10beb0e53130
child 9234 310d371059d5
--- a/src/wifi/model/mac-low.cc	Fri Dec 07 10:12:40 2012 -0800
+++ b/src/wifi/model/mac-low.cc	Fri Dec 07 14:36:01 2012 -0500
@@ -360,6 +360,7 @@
     m_sendAckEvent (),
     m_sendDataEvent (),
     m_waitSifsEvent (),
+    m_endTxNoAckEvent (),
     m_currentPacket (0),
     m_listener (0)
 {
@@ -396,6 +397,7 @@
   m_sendAckEvent.Cancel ();
   m_sendDataEvent.Cancel ();
   m_waitSifsEvent.Cancel ();
+  m_endTxNoAckEvent.Cancel ();
   m_phy = 0;
   m_stationManager = 0;
   delete m_phyMacLowListener;
@@ -457,6 +459,11 @@
       m_waitSifsEvent.Cancel ();
       oneRunning = true;
     }
+  if (m_endTxNoAckEvent.IsRunning ()) 
+    {
+      m_endTxNoAckEvent.Cancel ();
+      oneRunning = true;
+    }
   if (oneRunning && m_listener != 0)
     {
       m_listener->Cancel ();
@@ -1352,7 +1359,7 @@
   else
     {
       // since we do not expect any timer to be triggered.
-      m_listener = 0;
+      Simulator::Schedule(txDuration, &MacLow::EndTxNoAck, this);
     }
 }
 
@@ -1490,6 +1497,14 @@
   m_listener->StartNext ();
 }
 
+void 
+MacLow::EndTxNoAck (void)
+{
+  MacLowTransmissionListener *listener = m_listener;
+  m_listener = 0;
+  listener->EndTxNoAck ();
+}
+
 void
 MacLow::FastAckFailedTimeout (void)
 {