samples/main-test-sync.cc
author Raj Bhattacharjea <raj.b@gatech.edu>
Wed, 01 Apr 2009 19:09:12 -0400
changeset 4306 5396ecd09060
parent 3822 9a246859e808
permissions -rw-r--r--
Update AUTHORS for ns-3.4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     2
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     3
#include "ns3/simulator.h"
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
     4
#include "ns3/realtime-simulator-impl.h"
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     5
#include "ns3/nstime.h"
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     6
#include "ns3/log.h"
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     7
#include "ns3/system-thread.h"
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     8
#include "ns3/string.h"
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
     9
#include "ns3/config.h"
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    10
#include "ns3/global-value.h"
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    11
#include "ns3/ptr.h"
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    12
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    13
#include <unistd.h>
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    14
#include <sys/time.h>
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    15
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    16
using namespace ns3;
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    17
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    18
NS_LOG_COMPONENT_DEFINE ("TestSync");
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    19
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    20
bool gFirstRun = false;
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    21
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    22
void 
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    23
inserted_function (void)
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    24
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    25
  NS_ASSERT (gFirstRun);
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    26
  NS_LOG_UNCOND ("inserted_function() called at " << 
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    27
    Simulator::Now ().GetSeconds () << " s");
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    28
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    29
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    30
void 
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    31
background_function (void)
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    32
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    33
  NS_ASSERT (gFirstRun);
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    34
  NS_LOG_UNCOND ("background_function() called at " << 
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    35
    Simulator::Now ().GetSeconds () << " s");
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    36
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    37
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    38
void 
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    39
first_function (void)
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    40
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    41
  NS_LOG_UNCOND ("first_function() called at " << 
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    42
    Simulator::Now ().GetSeconds () << " s");
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    43
  gFirstRun = true;
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    44
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    45
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    46
class FakeNetDevice
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    47
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    48
public:
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    49
  FakeNetDevice ();
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    50
  void Doit3 (void);
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    51
  void Doit4 (void);
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    52
};
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    53
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    54
FakeNetDevice::FakeNetDevice ()
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    55
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    56
  NS_LOG_FUNCTION_NOARGS ();
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    57
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    58
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    59
void
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    60
FakeNetDevice::Doit3 (void)
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    61
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    62
  NS_LOG_FUNCTION_NOARGS ();
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    63
  sleep (1);
3822
9a246859e808 double and int confusion in main-test-sync
Craig Dowell <craigdo@ee.washington.edu>
parents: 3816
diff changeset
    64
  for (uint32_t i = 0; i < 10000; ++i)
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    65
    {
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    66
      //
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    67
      // Exercise the realtime relative now path
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    68
      //
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    69
      DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtimeNow (MakeEvent (&inserted_function));
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    70
      usleep (1000);
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    71
    }
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    72
}
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    73
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    74
void
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    75
FakeNetDevice::Doit4 (void)
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    76
{
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    77
  NS_LOG_FUNCTION_NOARGS ();
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    78
  sleep (1);
3822
9a246859e808 double and int confusion in main-test-sync
Craig Dowell <craigdo@ee.washington.edu>
parents: 3816
diff changeset
    79
  for (uint32_t i = 0; i < 10000; ++i)
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    80
    {
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    81
      //
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    82
      // Exercise the realtime relative schedule path
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    83
      //
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    84
      DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtime (Seconds (0), MakeEvent (&inserted_function));
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    85
      usleep (1000);
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    86
    }
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    87
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    88
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
    89
void 
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    90
test (void)
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    91
{
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    92
  GlobalValue::Bind ("SimulatorImplementationType", 
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    93
    StringValue ("ns3::RealtimeSimulatorImpl"));
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    94
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    95
  FakeNetDevice fnd;
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    96
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    97
  // 
3811
4eb8e926c6d7 rename RealtimeSimulator to WallclockSimulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
    98
  // Make sure ScheduleNow works when the system isn't running
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
    99
  //
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   100
  DynamicCast<RealtimeSimulatorImpl> (Simulator::GetImplementation ())->ScheduleRealtimeNow(MakeEvent (&first_function));
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   101
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   102
  // 
3822
9a246859e808 double and int confusion in main-test-sync
Craig Dowell <craigdo@ee.washington.edu>
parents: 3816
diff changeset
   103
  // drive the progression of m_currentTs at a ten millisecond rate from the main thread
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   104
  //
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   105
  for (double d = 0.; d < 14.999; d += 0.01)
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   106
    {
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   107
      Simulator::Schedule (Seconds (d), &background_function);
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   108
    }
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   109
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   110
  Ptr<SystemThread> st3 = Create<SystemThread> (
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   111
    MakeCallback (&FakeNetDevice::Doit3, &fnd));
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   112
  st3->Start ();
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   113
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   114
  Ptr<SystemThread> st4 = Create<SystemThread> (
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   115
    MakeCallback (&FakeNetDevice::Doit4, &fnd));
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   116
  st4->Start ();
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   117
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   118
  Simulator::Stop (Seconds (15.0));
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   119
  Simulator::Run ();
3799
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   120
  st3->Join ();
ceea04d07e60 it helps to remember to add function implementations
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   121
  st4->Join ();
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   122
  Simulator::Destroy ();
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   123
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   124
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   125
int
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   126
main (int argc, char *argv[])
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   127
{
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   128
  while (true)
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   129
    {
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   130
      test ();
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   131
    }
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   132
}
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents:
diff changeset
   133