示例#1
0
int main(int argc, char *argv[])
{
  sub = new ExampleSubscriber();
	sub->init();

	rttest_read_args(argc, argv);
	if (rttest_set_sched_priority(90, SCHED_RR) != 0)
  {
    perror("Failed to set scheduling priority and policy of thread");
  }

  size_t pool_size = 1024*1024*1024;
  size_t stack_size = sizeof(*sub) + 1024*1024;
	if (rttest_lock_memory() != 0)
  {
    perror("Failed to lock memory");
  }

	rttest_prefault_stack();

	rttest_spin(sub_callback, NULL);

	rttest_write_results();
	rttest_finish();

  std::cout << "Subscriber received " << sub->msgs_count << " messages." << std::endl;
	sub->teardown();
  delete sub;
}
示例#2
0
int main(int argc, char *argv[])
{
	sub.init();

	rttest_read_args(argc, argv);

	if (rttest_set_sched_priority(90, SCHED_RR) != 0)
  {
    perror("Failed to set scheduling priority and policy of thread");
  }

	if (rttest_lock_memory() != 0)
  {
    perror("Failed to lock memory");
  }

	rttest_prefault_stack();

	rttest_spin(sub_callback, NULL);

	rttest_write_results();
	rttest_finish();

	sub.teardown();
}
示例#3
0
int main(int argc, char *argv[])
{
  int c;

  // l stands for message length
  opterr = 0;
  optind = 1;
  int argc_copy = argc;
  char *argv_copy[argc];
  for (int i = 0; i < argc; ++i)
  {
    size_t len = strlen(argv[i]);
    argv_copy[i] = (char*) malloc(len);
    memcpy(argv_copy[i], argv[i], len);
  }

  while ((c = getopt(argc_copy, argv_copy, "l:")) != -1)
  {
    switch(c)
    {
      case 'l':
        message_length = std::stoul(std::string(optarg));
        break;
      default:
        break;
    }
  }
	rttest_read_args(argc, argv);

  pub = new ExamplePublisher();
  pub->message_size = message_length;
	pub->init();
  sub = new ExampleSubscriber();
	sub->init();

	if (rttest_lock_memory() != 0)
  {
    perror("Failed to lock dynamic memory");
  }
	rttest_prefault_stack();

  start_rt_thread(&subscriber_thread);

	if (rttest_set_sched_priority(98, SCHED_RR) != 0)
  {
    perror("Failed to set scheduling priority and policy");
  }

	publisher_thread(NULL);
  /*
  for (int i = 0; i < argc; ++i)
  {
    free(argv_copy[i]);
  }
  */

  //delete sub;
}
示例#4
0
int main(int argc, char ** argv)
{
  rttest_set_sched_priority(98, SCHED_RR);

  if (rttest_read_args(argc, argv) != 0) {
    perror("Couldn't read arguments for rttest");
    return -1;
  }
  if (rttest_lock_memory() != 0) {
    perror("Couldn't lock memory");
    return -1;
  }
  rttest_lock_and_prefault_dynamic();

  rttest_spin(my_loop_callback, NULL);

  rttest_write_results();
  rttest_finish();

  return 0;
}