Пример #1
0
void P3LeafMesh::open_i(ServiceParamsPtr& params, int fttype) throw (ServiceException&) {
    ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T) INFO: P3LeafMesh::open_i(%d)\n"), m_status));
    ACE_GUARD(ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, m_lock);
    if (isStarting() /*|| isResuming()*/) {
        ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T) INFO: P3LeafMesh::open_i starting(%d)\n"), m_status));
        //Task::activate();
        int maxBindTries = 10000;
        //IncrementalSleep sleeper(1,0);
        //IncrementalSleep sleeper(0,1000);
        IncrementalSleep sleeper(0, DEFAULT_BIND_TIME);
        m_start = ACE_OS::gettimeofday();
        for (int i = 0; i < maxBindTries; i++) {
            try {
                bind(true);
                return;
            } catch (ServiceException& bindEx) {
                //discard bindEx
                sleeper.sleep();
            }
        }
        ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T) INFO: P3LeafMesh::open(): bind failed\n")));
        throw ServiceException(ServiceException::REGISTRATION_ERROR);
    } else {
        ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T) INFO: P3LeafMesh::open(): error\n")));
        throw ServiceException(ServiceException::REGISTRATION_ERROR);
    }
}
Пример #2
0
void GraphInvalidator::
        test()
{
    // It should invalidate caches and wakeup workers
    {
        // create
        Dag::ptr dag(new Dag);
        Bedroom::ptr bedroom(new Bedroom);
        INotifier::ptr notifier(new BedroomNotifier(bedroom));
        Step::ptr step(new Step(Signal::OperationDesc::ptr()));
        WaitForWakeupMock sleeper(bedroom);

        // wire up
        sleeper.start ();
        dag.write ()->appendStep(step);
        Signal::Intervals initial_valid(-20,60);
        int taskid = Step::registerTask(step.write (), initial_valid.spannedInterval ());
        (void)taskid; // discard
        EXCEPTION_ASSERT_EQUALS(step.read ()->not_started(), ~initial_valid);
        EXCEPTION_ASSERT(sleeper.isRunning ());

        EXCEPTION_ASSERT_EQUALS(sleeper.wait (1), false);
        EXCEPTION_ASSERT_EQUALS(bedroom->sleepers (), 1);

        // test
        GraphInvalidator graphInvalidator(dag, notifier, step);
        Signal::Intervals deprecated(40,50);
        graphInvalidator.deprecateCache (deprecated);

        EXCEPTION_ASSERT_EQUALS(step.read ()->not_started(), ~initial_valid | deprecated);
        sleeper.wait (1);
        EXCEPTION_ASSERT_EQUALS(bedroom->sleepers (), 0);
        EXCEPTION_ASSERT(sleeper.isFinished ());
    }
}
Пример #3
0
void P3LeafMesh::onClose(AbstractStreamChannel<ACE_SOCK_Stream, ACE_MT_SYNCH>* channel) {
    ACE_GUARD(ACE_SYNCH_RECURSIVE_MUTEX, ace_mon, m_lock);
    ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T)INFO: P3LeafMesh:onClose() - (%@)\n"), channel));
    /*if(m_client != channel){
        ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T)INFO: P3LeafMesh:onClose() - NOT m_client????????????(%@)\n"),channel));    
    }*/
    channel->setCloseListener(0);
    m_client.reset(0);
    //delete channel;
    //m_client = 0;
    ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T)INFO: P3LeafMesh:onClose() - after delete(%@)\n"), channel));
    //m_client = 0;
    IncrementalSleep sleeper(0, DEFAULT_BIND_TIME);
    m_start = ACE_OS::gettimeofday();
    while (true) {
        ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t|%T)INFO: P3LeafMesh:onClose() - loop with delete channel of (%@)\n"), channel));
        try {
            bind();
            break;
        } catch (ServiceException& ex) {
            //retry
            sleeper.sleep();
        }
    }
}
Пример #4
0
int
main(void)
{
	season_7_lisa_the_vegetarian_t l;
	l.fr_salad = 100;

	sleeper(&l);

	return (0);
}
Пример #5
0
int
_ofp_select(int nfds, ofp_fd_set *readfds, ofp_fd_set *writefds,
	    ofp_fd_set *exceptfds, struct ofp_timeval *timeout,
	    int (*sleeper)(void *channel, odp_rwlock_t *mtx, int priority,
			   const char *wmesg, uint32_t timeout))
{
	(void)writefds;
	(void)exceptfds;

	if (is_blocking(timeout) && none_of_ready(nfds, readfds, is_readable))
		sleeper(NULL, NULL, 0, "select", to_usec(timeout));

	return set_ready_fds(nfds, readfds, is_readable);
}
Пример #6
0
void *consumer(void *params){
	struct runpars* pars = (struct runpars*) params;
	int i;
	for(i = pars->start; i < pars->end; i++){
		sem_wait(&full);
		Node *n = list_remove(buffer);
		sem_post(&empty);
		sleeper(SLEEP_TIME_MS);
		int fullC,emptyC;
		sem_getvalue(&full,&fullC);
		sem_getvalue(&empty,&emptyC);
		printf("consumer ate item %i, full: %i, empty: %i\n", (int) n->elm, fullC, emptyC);
	}
	free(pars);
	pthread_exit(0);
}
Пример #7
0
void *producer(void *params){
	struct runpars* pars = (struct runpars*) params;
	int i;
	for(i = pars->start; i < pars->end; i++){
		Node *n = node_new();
		n->elm = (void*) i;
		sem_wait(&empty);
		list_add(buffer, n);
		sem_post(&full);
		sleeper(SLEEP_TIME_MS);
		int fullC,emptyC;
		sem_getvalue(&full,&fullC);
		sem_getvalue(&empty,&emptyC);
		printf("producer %i made item %i, full: %i, empty: %i\n", pars->start/producerLoad, (int) n->elm, fullC, emptyC);
	}
	free(pars);
	pthread_exit(0);
}
int main(int argc, char** argv)
{
  ros::init(argc, argv, "kinect_tf_publisher");
  ros::NodeHandle n;
  tf::TransformBroadcaster tf_broadcaster;
  tf::Transform T0_kinect;
  static tf::TransformBroadcaster br;

  ros::Duration sleeper(75.0/1000.0);

  while( ros::ok() )
    {
      T0_kinect.setRotation(tf::Quaternion(tf::Vector3(1.0, 0.0, 0.0), M_PI*0.5)*tf::Quaternion(tf::Vector3(0.0, 1.0, 0.0), M_PI*0.5)*tf::Quaternion(tf::Vector3(1, 0.0, 0.0), M_PI*0.10));
      // T0_kinect.setRotation( tf::Quaternion(tf::Vector3(1.0, 1.0, 0.0), M_PI*0.5) );
      T0_kinect.setOrigin(tf::Vector3(-0.10, 0, 1.90));
      br.sendTransform(tf::StampedTransform(T0_kinect, ros::Time::now(), "world", "kinect_sensor"));
      sleeper.sleep();
    }

  return 0;
}
Пример #9
0
bool BedItem::canUse(Player* player)
{
	if (!player || !house || !player->isPremium()) {
		return false;
	}

	if (sleeperGUID == 0) {
		return true;
	}

	if (house->getHouseAccessLevel(player) == HOUSE_OWNER) {
		return true;
	}

	Player sleeper(nullptr);
	if (!IOLoginData::loadPlayerById(&sleeper, sleeperGUID)) {
		return false;
	}

	if (house->getHouseAccessLevel(&sleeper) > house->getHouseAccessLevel(player)) {
		return false;
	}
	return true;
}
Пример #10
0
int main(int argc, char ** argv)
{
  //Initialize ROS
  ros::init(argc, argv,"static_transform_publisher", ros::init_options::AnonymousName);

  if(argc == 11)
  {
    ros::Duration sleeper(atof(argv[10])/1000.0);

    if (strcmp(argv[8], argv[9]) == 0)
      ROS_FATAL("target_frame and source frame are the same (%s, %s) this cannot work", argv[8], argv[9]);

    TransformSender tf_sender(atof(argv[1]), atof(argv[2]), atof(argv[3]),
                              atof(argv[4]), atof(argv[5]), atof(argv[6]), atof(argv[7]),
                              ros::Time() + sleeper, //Future dating to allow slower sending w/o timeout
                              argv[8], argv[9]);



    while(tf_sender.node_.ok())
    {
      tf_sender.send(ros::Time::now() + sleeper);
      ROS_DEBUG("Sending transform from %s with parent %s\n", argv[8], argv[9]);
      sleeper.sleep();
    }

    return 0;
  } 
  else if (argc == 10)
  {
    ros::Duration sleeper(atof(argv[9])/1000.0);

    if (strcmp(argv[7], argv[8]) == 0)
      ROS_FATAL("target_frame and source frame are the same (%s, %s) this cannot work", argv[7], argv[8]);

    TransformSender tf_sender(atof(argv[1]), atof(argv[2]), atof(argv[3]),
                              atof(argv[4]), atof(argv[5]), atof(argv[6]),
                              ros::Time() + sleeper, //Future dating to allow slower sending w/o timeout
                              argv[7], argv[8]);



    while(tf_sender.node_.ok())
    {
      tf_sender.send(ros::Time::now() + sleeper);
      ROS_DEBUG("Sending transform from %s with parent %s\n", argv[7], argv[8]);
      sleeper.sleep();
    }

    return 0;

  }
  else
  {
    printf("A command line utility for manually sending a transform.\n");
    printf("It will periodicaly republish the given transform. \n");
    printf("Usage: static_transform_publisher x y z yaw pitch roll frame_id child_frame_id  period(milliseconds) \n");
    printf("OR \n");
    printf("Usage: static_transform_publisher x y z qx qy qz qw frame_id child_frame_id  period(milliseconds) \n");
    printf("\nThis transform is the transform of the coordinate frame from frame_id into the coordinate frame \n");
    printf("of the child_frame_id.  \n");
    ROS_ERROR("static_transform_publisher exited due to not having the right number of arguments");
    return -1;
  }


};
void middle() {
  sleeper();
  sibling();
  recurser();
}