您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ stopping函数代码示例

51自学网 2021-06-03 08:24:35
  C++
这篇教程C++ stopping函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中stopping函数的典型用法代码示例。如果您正苦于以下问题:C++ stopping函数的具体用法?C++ stopping怎么用?C++ stopping使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了stopping函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: while

    void    Periodic::onMain(void)    {      double now = Time::Clock::get();      double delay = (1 / m_frequency);      double next_inv = now + delay;      m_run_time = now;      while (!stopping())      {        delay = (1.0 / m_frequency);        if (next_inv > now)          Time::Delay::wait(next_inv - now);        next_inv += delay;        now = Time::Clock::get();        m_run_time = now;        // Perform job.        consumeMessages();        if (!stopping())        {          task();          ++m_run_count;        }        now = Time::Clock::get();      }    }
开发者ID:FreddyFox,项目名称:dune,代码行数:30,


示例2: os_set_thread_name

static void *send_thread(void *data){	struct rtmp_stream *stream = data;	os_set_thread_name("rtmp-stream: send_thread");	while (os_sem_wait(stream->send_sem) == 0) {		struct encoder_packet packet;		if (stopping(stream) && stream->stop_ts == 0) {			break;		}		if (!get_next_packet(stream, &packet))			continue;		if (stopping(stream)) {			if (can_shutdown_stream(stream, &packet)) {				obs_free_encoder_packet(&packet);				break;			}		}		if (!stream->sent_headers) {			if (!send_headers(stream)) {				os_atomic_set_bool(&stream->disconnected, true);				break;			}		}		if (send_packet(stream, &packet, false, packet.track_idx) < 0) {			os_atomic_set_bool(&stream->disconnected, true);			break;		}	}	if (disconnected(stream)) {		info("Disconnected from %s", stream->path.array);	} else {		info("User stopped the stream");	}	RTMP_Close(&stream->rtmp);	if (!stopping(stream)) {		pthread_detach(stream->send_thread);		obs_output_signal_stop(stream->output, OBS_OUTPUT_DISCONNECTED);	} else {		obs_output_end_data_capture(stream->output);	}	free_packets(stream);	os_event_reset(stream->stop_event);	os_atomic_set_bool(&stream->active, false);	stream->sent_headers = false;	return NULL;}
开发者ID:Eegee,项目名称:obs-studio,代码行数:57,


示例3: PRINT1

int ThreadedAudioDevice::doStop(){	if (!stopping()) {		PRINT1("/tThreadedAudioDevice::doStop/n");		stopping(true);		// signals play thread		paused(false);		waitForThread();		starting(false);	}	return 0;}
开发者ID:eriser,项目名称:rtcmix-android,代码行数:11,


示例4: stopping

 void AdmittanceController::setMode(unsigned int mode) {     if (mode_ != mode) {         stopping();         mode_ = mode;         starting();     } }
开发者ID:Martin-Oehler,项目名称:compliant_control,代码行数:7,


示例5: int

int ThreadedAudioDevice::waitForDevice(unsigned int wTime) {	int ret;	unsigned waitSecs = int(wTime / 1000.0);	unsigned waitUsecs = 1000 * (wTime - unsigned(waitSecs * 1000));	// Wait wTime msecs for select to return, then bail.	if (!stopping()) {		int nfds = _device + 1;		struct timeval tv;		tv.tv_sec = waitSecs;		tv.tv_usec = waitUsecs;		// If wTime == 0, wait forever by passing NULL as the final arg.//		if (!isPlaying())//			printf("select(%d, 0x%x, 0x%x, NULL, 0x%x).../n", //					nfds, &_rfdset, &_wfdset, wTime == 0 ?  NULL : &tv);		int selret = ::select(nfds, &_rfdset, &_wfdset,							  NULL, wTime == 0 ?  NULL : &tv);		if (selret <= 0) {			if (errno != EINTR)				fprintf(stderr,						"ThreadedAudioDevice::waitForDevice: select %s/n",						(selret == 0) ? "timed out" : "returned error");			ret = -1;		}		else {			setFDSet();			ret = 0;		}	}	else {		PRINT1("ThreadedAudioDevice::waitForDevice: stopping == true/n");		ret = 1;	}	return ret;}
开发者ID:eriser,项目名称:rtcmix-android,代码行数:34,


示例6: setStarted

void Insteon::run(){    setStarted();    while (!stopping())    {        // Make sure every devices are idle before atempting to send another command        bool devicesIdle = true;        for (std::map<InsteonID,InsteonDevice*>::iterator it = mModules.begin();it!=mModules.end();it++)        {            time_t t;            time(&t);            it->second->onTimer(t);            if (!it->second->isIdle())            {                devicesIdle = false;                break;            }        }        if (mpInsteonModem->process(devicesIdle))        {            // dont sleep more than 50ms because Insteon modem expects reponses within 85ms            usleep(50000);        }    }}
开发者ID:pdumais,项目名称:dhas,代码行数:27,


示例7: rtmp_stream_destroy

static void rtmp_stream_destroy(void *data){	struct rtmp_stream *stream = data;	if (stopping(stream) && !connecting(stream)) {		pthread_join(stream->send_thread, NULL);	} else if (connecting(stream) || active(stream)) {		if (stream->connecting)			pthread_join(stream->connect_thread, NULL);		os_event_signal(stream->stop_event);		if (active(stream)) {			os_sem_post(stream->send_sem);			obs_output_end_data_capture(stream->output);			pthread_join(stream->send_thread, NULL);		}	}	if (stream) {		free_packets(stream);		dstr_free(&stream->path);		dstr_free(&stream->key);		dstr_free(&stream->username);		dstr_free(&stream->password);		dstr_free(&stream->encoder_name);		os_event_destroy(stream->stop_event);		os_sem_destroy(stream->send_sem);		pthread_mutex_destroy(&stream->packets_mutex);		circlebuf_free(&stream->packets);		bfree(stream);	}}
开发者ID:AmoghSubhedar,项目名称:obs-studio,代码行数:34,


示例8: init_connect

static bool init_connect(struct rtmp_stream *stream){	obs_service_t *service;	obs_data_t *settings;	if (stopping(stream))		pthread_join(stream->send_thread, NULL);	free_packets(stream);	service = obs_output_get_service(stream->output);	if (!service)		return false;	os_atomic_set_bool(&stream->disconnected, false);	stream->total_bytes_sent = 0;	stream->dropped_frames   = 0;	stream->min_drop_dts_usec= 0;	stream->min_priority     = 0;	settings = obs_output_get_settings(stream->output);	dstr_copy(&stream->path,     obs_service_get_url(service));	dstr_copy(&stream->key,      obs_service_get_key(service));	dstr_copy(&stream->username, obs_service_get_username(service));	dstr_copy(&stream->password, obs_service_get_password(service));	stream->drop_threshold_usec =		(int64_t)obs_data_get_int(settings, OPT_DROP_THRESHOLD) * 1000;	stream->max_shutdown_time_sec =		(int)obs_data_get_int(settings, OPT_MAX_SHUTDOWN_TIME_SEC);	obs_data_release(settings);	return true;}
开发者ID:AmoghSubhedar,项目名称:obs-studio,代码行数:32,


示例9: onMain

      //! Main loop.      void      onMain(void)      {        Counter<double> m_mon_timer(1.0);        while (!stopping())        {          waitForMessages(1.0);          if (m_wdog.overflow())          {            setEntityState(IMC::EntityState::ESTA_ERROR, Status::CODE_COM_ERROR);            throw RestartNeeded(Status::getString(Status::CODE_COM_ERROR), c_restart_delay);          }          else          {            setEntityState(IMC::EntityState::ESTA_NORMAL, Status::CODE_ACTIVE);          }          if (m_mon_timer.overflow())          {            m_mon_timer.reset();            getMonitors();          }        }      }
开发者ID:FreddyFox,项目名称:dune,代码行数:27,


示例10: onMain

      void      onMain(void)      {        char bfr[32];        while (!stopping())        {          consumeMessages();          if (m_wdog.overflow())          {            setEntityState(IMC::EntityState::ESTA_ERROR, Status::CODE_COM_ERROR);            throw RestartNeeded(DTR(Status::getString(CODE_COM_ERROR)), 5);          }          if (!Poll::poll(*m_uart, 1.0))            continue;          size_t rv = m_uart->readString(bfr, sizeof(bfr));          if (rv == 0)            throw RestartNeeded(DTR("I/O error"), 5);          if (std::sscanf(bfr, "%f", &m_sspeed.value) != 1)            continue;          if ((m_sspeed.value < c_min_speed) || (m_sspeed.value > c_max_speed))            m_sspeed.value = -1;          m_wdog.reset();          dispatch(m_sspeed);        }      }
开发者ID:tausteen,项目名称:dune,代码行数:33,


示例11: os_set_thread_name

static void *connect_thread(void *data){	struct rtmp_stream *stream = data;	int ret;	os_set_thread_name("rtmp-stream: connect_thread");	if (!init_connect(stream)) {		obs_output_signal_stop(stream->output, OBS_OUTPUT_BAD_PATH);		return NULL;	}	ret = try_connect(stream);	if (ret != OBS_OUTPUT_SUCCESS) {		obs_output_signal_stop(stream->output, ret);		info("Connection to %s failed: %d", stream->path.array, ret);	}	if (!stopping(stream))		pthread_detach(stream->connect_thread);	os_atomic_set_bool(&stream->connecting, false);	return NULL;}
开发者ID:AmoghSubhedar,项目名称:obs-studio,代码行数:25,


示例12: stopping

voidEndSequence::stop(){  if (!isrunning) return;  isrunning = false;  isdone = true;  stopping();}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:8,


示例13: while

 void BasicUAVAutopilot::onMain(void) {   while (!stopping())   {     waitForMessages(1.0);   } }
开发者ID:FreddyFox,项目名称:dune,代码行数:8,


示例14: onMain

 void onMain(void) {   while (!stopping())   {     waitForMessages(1.0);   } }
开发者ID:Aero348,项目名称:dune,代码行数:8,


示例15: while

voidEventLoop::idle(){    while (!stopping()) {        MORDOR_LOG_DEBUG(g_log) << m_messageWindow << " Starting new message pump";        schedule(boost::bind(&EventLoop::messagePump, this));        Fiber::yield();    }}
开发者ID:Abioy,项目名称:mordor,代码行数:9,


示例16: seconds

bool MeasureThreadCounter::runnable(){	int seconds(m_nSeconds), wait;	if(m_bClientAction)	{		tout << "server wait for some action from any client" << endl;		tout << "and count after that ";	}else		tout << "server count now ";	tout << "between " << getTimeString(seconds, &wait) << "for running folder threads." << endl;	TERMINALEND;	if(m_bClientAction)	{		LOCK(m_CLIENTACTIONMUTEX);		m_bCounting= false;		while(!m_bClientActionDone)		{			CONDITION(m_CLIENTACTIONCOND, m_CLIENTACTIONMUTEX);			if(stopping())			{				m_bCounting= true;				UNLOCK(m_CLIENTACTIONMUTEX);				return false;			}		}		beginCount();		AROUSEALL(m_CLIENTACTIONCOND);		m_bCounting= true;		tout << "wait now for " << getTimeString(seconds, &wait) << endl;		if(m_bClientAction)		{			tout << "  activated from " << m_tClient.who << endl;			tout << "    to inform " << m_tClient.folder << ":" << m_tClient.subroutine							<< " set with value " << m_tClient.value << endl;		}		UNLOCK(m_CLIENTACTIONMUTEX);		TERMINALEND;	}else		beginCount();	do{		//cout << "sleep for " << wait << " seconds" << endl;		if(SLEEP(wait) != ETIMEDOUT)		{			outputCounting(m_nSeconds - seconds);			return false;		}		seconds-= wait;		if(seconds > 0)		{			tout << "wait for " << getTimeString(seconds, &wait) << endl;			TERMINALEND;		}	}while(seconds > 0);	outputCounting(m_nSeconds);	return false;}
开发者ID:kollia,项目名称:ppi-server,代码行数:57,


示例17: onMain

      void      onMain(void)      {        setInitialState();        while (!stopping())        {          if (m_report_timer.overflow())          {            if (m_args.progress)              reportProgress();            dispatch(m_pcs);            m_report_timer.reset();          }          double now = Clock::get();          if ((getEntityState() == IMC::EntityState::ESTA_NORMAL) &&              (now - m_last_vstate >= c_vs_timeout))          {            changeMode(IMC::PlanControlState::PCS_BLOCKED, DTR("vehicle state timeout"));            m_last_vstate = now;          }          // got requests to process          if (!pendingReply() && m_requests.size())          {            processRequest(&m_requests.front());            m_requests.pop();          }          double delta = m_vc_reply_deadline < 0 ? 1 : m_vc_reply_deadline - now;          if (delta > 0)          {            waitForMessages(std::min(1.0, delta));            continue;          }          // handle reply timeout          m_vc_reply_deadline = -1;          changeMode(IMC::PlanControlState::PCS_READY, DTR("vehicle reply timeout"));          // Popping all requests          while (m_requests.size())            m_requests.pop();          // Increment local request id to prevent old replies from being processed          ++m_vreq_ctr;          err(DTR("cleared all requests"));        }      }
开发者ID:tsalidis,项目名称:dune,代码行数:56,


示例18: kill

void eStreamThread::stop() {	if(!stopping())	{		m_stop = true;		::ioctl(m_destfd, 0);		kill();	}	else		eDebug("eStreamThread::stop: thread already stopping, ignoring kill request!");}
开发者ID:Haehnchen,项目名称:enigma2-plugins,代码行数:10,


示例19: obs_output_force_stop

void obs_output_force_stop(obs_output_t *output){	if (!obs_output_valid(output, "obs_output_force_stop"))		return;	if (!stopping(output)) {		output->stop_code = 0;		do_output_signal(output, "stopping");		obs_output_actual_stop(output, true, 0);	}}
开发者ID:DedSecAnonymous,项目名称:obs-studio,代码行数:11,


示例20: onMain

 void onMain(void) {   while (!stopping())   {     waitForMessages(1.0);     // Check if we receive valid GPS data.     if (m_time_without_gps.overflow())       setEntityState(IMC::EntityState::ESTA_ERROR, Status::CODE_WAIT_GPS_FIX);   } }
开发者ID:retlaw84,项目名称:dune,代码行数:11,


示例21: stopping

	Window::~Window() {		stopping();				SDL_HideWindow(_window);				SDL_GL_DeleteContext(_context);				SDL_DestroyWindow(_window);				SDL_QuitSubSystem(SDL_INIT_VIDEO);	}
开发者ID:JackGoldfinch,项目名称:JSLib,代码行数:11,


示例22: update

voidServerImpl::stop (bool wait){    if (! stopping())    {        m_work = boost::none;        update();    }    if (wait)        m_stopped.wait();}
开发者ID:619213152,项目名称:vpal20,代码行数:12,


示例23: init_connect

static bool init_connect(struct rtmp_stream *stream){	obs_service_t *service;	obs_data_t *settings;	const char *bind_ip;	int64_t drop_p;	int64_t drop_b;	if (stopping(stream)) {		pthread_join(stream->send_thread, NULL);	}	free_packets(stream);	service = obs_output_get_service(stream->output);	if (!service)		return false;	os_atomic_set_bool(&stream->disconnected, false);	stream->total_bytes_sent = 0;	stream->dropped_frames   = 0;	stream->min_priority     = 0;	settings = obs_output_get_settings(stream->output);	dstr_copy(&stream->path,     obs_service_get_url(service));	dstr_copy(&stream->key,      obs_service_get_key(service));	dstr_copy(&stream->username, obs_service_get_username(service));	dstr_copy(&stream->password, obs_service_get_password(service));	dstr_depad(&stream->path);	dstr_depad(&stream->key);	drop_b = (int64_t)obs_data_get_int(settings, OPT_DROP_THRESHOLD);	drop_p = (int64_t)obs_data_get_int(settings, OPT_PFRAME_DROP_THRESHOLD);	stream->max_shutdown_time_sec =		(int)obs_data_get_int(settings, OPT_MAX_SHUTDOWN_TIME_SEC);	if (drop_p < (drop_b + 200))		drop_p = drop_b + 200;	stream->drop_threshold_usec = 1000 * drop_b;	stream->pframe_drop_threshold_usec = 1000 * drop_p;	bind_ip = obs_data_get_string(settings, OPT_BIND_IP);	dstr_copy(&stream->bind_ip, bind_ip);	stream->new_socket_loop = obs_data_get_bool(settings,			OPT_NEWSOCKETLOOP_ENABLED);	stream->low_latency_mode = obs_data_get_bool(settings,			OPT_LOWLATENCY_ENABLED);	obs_data_release(settings);	return true;}
开发者ID:chaturbatecom,项目名称:obs-studio,代码行数:52,


示例24: dispatch

    void    Maneuver::onMain(void)    {      dispatch(m_rm);      while (!stopping())      {        if (isActive())          onStateReport();        waitForMessages(1.0);      }    }
开发者ID:Aero348,项目名称:dune,代码行数:13,


示例25: while

  void  Daemon::onMain(void)  {    while (!stopping())    {      waitForMessages(1.0);      if (m_periodic_counter.overflow())      {        m_periodic_counter.reset();        dispatchPeriodic();      }    }  }
开发者ID:AndreGCGuerra,项目名称:dune,代码行数:14,


示例26: lock

void BaseADCDebugLogger::stop(){    std::lock_guard<std::mutex> lock(_mutex);    _triggerState = false;    _preSamplesCount = 0;    _postSamplesCount = 0;    if (_workState == SavingState)        return;    _workState = NotWorkingState;    stopping();}
开发者ID:chaibio,项目名称:chaipcr,代码行数:15,


示例27: stopping

int ThreadedAudioDevice::startThread(){	stopping(false);	// Reset.	if (isPassive())	// Nothing else to do here if passive mode.		return 0;	starting(true);#ifdef PROFILE	getitimer(ITIMER_PROF, &globalTimerVal);#endif	PRINT1("/tThreadedAudioDevice::startThread: starting thread/n");	int status = pthread_create(&_thread, NULL, _runProcess, this);	if (status < 0) {		error("Failed to create thread");	}	return status;}
开发者ID:eriser,项目名称:rtcmix-android,代码行数:16,


示例28: onMain

      void      onMain(void)      {        while (!stopping())        {          if (!isInitialized() || !isActive())          {            waitForMessages(1.0);            continue;          }          if (!m_ping_time.overflow())          {            waitForMessages(m_args.ping_delay);            continue;          }          double tstamp = Time::Clock::getSinceEpoch();          for (m_beacon = m_beacons.begin(); m_beacon < m_beacons.end(); ++m_beacon)          {            // Compute error.            double error = 0;            if (m_args.bad_range_prob > 0 && m_prng->random() % 100 <= m_args.bad_range_prob)              error = c_huge_error;            else if (m_args.sigma > 0)              error = m_prng->gaussian() * m_args.sigma;            //! Compute range.            double xd = m_sstate.x - m_beacon->x;            double yd = m_sstate.y - m_beacon->y;            double zd = m_sstate.z - m_beacon->depth;            IMC::LblRange range;            range.setTimeStamp(tstamp);            range.id = m_beacon->id;            range.range = std::sqrt(xd * xd + yd * yd + zd * zd);            range.range += error;            dispatch(range, DF_KEEP_TIME);            trace("beacon %u, range of %0.2f m, simulated error of %0.2f m",                  range.id, range.range, error);          }          // Setup next ping.          m_ping_time.reset();        }      }
开发者ID:Aero348,项目名称:dune,代码行数:47,


示例29: rtmp_stream_destroy

static void rtmp_stream_destroy(void *data){	struct rtmp_stream *stream = data;	if (stopping(stream) && !connecting(stream)) {		pthread_join(stream->send_thread, NULL);	} else if (connecting(stream) || active(stream)) {		if (stream->connecting)			pthread_join(stream->connect_thread, NULL);		stream->stop_ts = 0;		os_event_signal(stream->stop_event);		if (active(stream)) {			os_sem_post(stream->send_sem);			obs_output_end_data_capture(stream->output);			pthread_join(stream->send_thread, NULL);		}	}	free_packets(stream);	dstr_free(&stream->path);	dstr_free(&stream->key);	dstr_free(&stream->username);	dstr_free(&stream->password);	dstr_free(&stream->encoder_name);	dstr_free(&stream->bind_ip);	os_event_destroy(stream->stop_event);	os_sem_destroy(stream->send_sem);	pthread_mutex_destroy(&stream->packets_mutex);	circlebuf_free(&stream->packets);#ifdef TEST_FRAMEDROPS	circlebuf_free(&stream->droptest_info);#endif	os_event_destroy(stream->buffer_space_available_event);	os_event_destroy(stream->buffer_has_data_event);	os_event_destroy(stream->socket_available_event);	os_event_destroy(stream->send_thread_signaled_exit);	pthread_mutex_destroy(&stream->write_buf_mutex);	if (stream->write_buf)		bfree(stream->write_buf);	bfree(stream);}
开发者ID:chaturbatecom,项目名称:obs-studio,代码行数:46,


示例30: rtmp_stream_stop

static void rtmp_stream_stop(void *data){	struct rtmp_stream *stream = data;	if (stopping(stream))		return;	if (connecting(stream))		pthread_join(stream->connect_thread, NULL);	os_event_signal(stream->stop_event);	if (active(stream)) {		os_sem_post(stream->send_sem);		obs_output_end_data_capture(stream->output);	}}
开发者ID:AmoghSubhedar,项目名称:obs-studio,代码行数:17,



注:本文中的stopping函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ storage函数代码示例
C++ stopped函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。