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); } }
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 ()); } }
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(); } } }
int main(void) { season_7_lisa_the_vegetarian_t l; l.fr_salad = 100; sleeper(&l); return (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); }
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); }
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; }
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; }
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(); }