Ejemplo n.º 1
0
/*******************************************************************************
    Local track Model Population thread
*******************************************************************************/
void ThreadManager::populateLocalTrackModel()
{
   Debug::debug() << "[ThreadManager] start a new collection populator";
   if(m_localTrackPopulator->isRunning()) {
     cancelThread(POPULATOR_C_THREAD);
   }

   m_localTrackPopulator->start();

   uint i = StatusManager::instance()->startMessage(tr("Loading music collection"));
   messageIds.insert("LoadMusic", i);
}
Ejemplo n.º 2
0
/*******************************************************************************
    Database Scanner Thread
*******************************************************************************/
void ThreadManager::databaseBuild(QStringList listDir)
{
    if(m_databaseBuilder->isRunning())
      cancelThread(DB_THREAD);

    Debug::debug() << " ThreadManager start a database builder thread";
    m_databaseBuilder->rebuildFolder(listDir);
    m_databaseBuilder->start();

    uint i = StatusWidget::instance()->startProgressMessage(tr("Updating music database") + " (0%)");
    messageIds.insert("DbUpdate", i);
    emit dbBuildStart();    
}
Ejemplo n.º 3
0
/*******************************************************************************
    Database Scanner Thread
*******************************************************************************/
void ThreadManager::databaseBuild(QStringList listDir,bool doRebuild/*=false*/)
{
    if(m_databaseBuilder->isRunning())
      cancelThread(DB_THREAD);

    Debug::debug() << "[ThreadManager] start a database builder thread";
    m_databaseBuilder->updateFolder(listDir,doRebuild);
    m_databaseBuilder->start();

    uint i = StatusManager::instance()->startMessage(tr("Updating music database") + " (0%)");
    messageIds.insert("DbUpdate", i);
    emit dbBuildStart();    
}
Ejemplo n.º 4
0
void softPwmStop (int pin)
{
  if (range [pin] != 0)
  {
#ifdef __BRILLO__
    cancelThread(&ctrl_pipe[pin][0], &ctrl_pipe[pin][1]);
#else
    pthread_cancel (threads [pin]) ;
#endif /* __BRILLO__ */
    pthread_join   (threads [pin], NULL) ;
    range [pin] = 0 ;
    digitalWrite (pin, LOW) ;
  }
}
Ejemplo n.º 5
0
inline void FThreadPool::moveToIdle(pthread_t tid)
{
	if (isOverflow())
	{
		cancelThread(tid);
	}
	else
	{
		if (m_idle.count(tid) == 0)
		{
			m_busy.erase(tid);
			m_idle.insert(tid);
		}
	}
}
Ejemplo n.º 6
0
void FThreadPool::setMaxSize(size_t maxSize)
{
	pthread_mutex_lock(&m_mutex);
	m_maxSize = maxSize;
	if (m_maxSize > 0)
	{
		while (m_size > m_maxSize)
		{
			if (m_idle.empty())
				break;
			std::set<pthread_t>::iterator it = m_idle.begin();
			pthread_t tid = *it;
			if (cancelThread(tid) != 0)
				break;
		}
	}
	pthread_mutex_unlock(&m_mutex);
}
Ejemplo n.º 7
0
  virtual void doTask(void)
  {
    try
    {
//std::cerr<<"doTask(): testing for connection..."<<std::endl;
      if( !_server.waitForConnection(1500) )   // wait 1.5[s] before fallback
        return;

      // so we have connection! :)
//std::cerr<<"doTask(): got connection"<<std::endl;
      Network::Connection           conn       =_server.accept();
      VCCln::RasterDeserializer     deserializer( conn.getRXstrm() );
      CGraphics::Raster::AutoRaster aRaster    =deserializer.deserialize();
      CRasterHolder                 autoCRaster( convert( *aRaster.get() ) );
      _swapper.swap( autoCRaster.get() );
      autoCRaster.release();        // pointer is secure now!
//std::cerr<<"doTask(): got new immage"<<std::endl;
    }
    catch(const Network::Exception &ex)
    {
      std::cerr<<"DebugReciever::doTask(): Network exception: "
               <<ex.what()<<std::endl;
      //cancelThread();
    }
    catch(const VCCln::Exception &ex)
    {
      std::cerr<<"DebugReciever::doTask(): VCCln exception: "
               <<ex.what()<<std::endl;
      //cancelThread();
    }
    catch(const CGraphics::Exception &ex)
    {
      std::cerr<<"DebugReciever::doTask(): CGraphics exception: "
               <<ex.what()<<std::endl;
      //cancelThread();
    }
    catch(...)
    {
      // exceptions are NOT allowed...
      std::cerr<<"DebugReciever::doTask(): exception cought..."
               <<std::endl;
      cancelThread();
    };
  };
Ejemplo n.º 8
0
void activeClose(Connection *conn) {
	Segment fin;

	cancelThread(conn->sender);

	joinThread(conn->sender);

	fin = createSegment(RUSP_FIN, 0, getWindowNext(&(conn->sndwnd)), 0, NULL);

	addSgmBuff(&(conn->sndsgmbuff), fin, RUSP_NACK);

	setConnectionState(conn, RUSP_FINWT1);

	sendSegment(conn, fin);

	slideWindowNext(&(conn->sndwnd), 1);

	DBGPRINT(RUSP_DEBUG, "SND (NXT): base:%u nxt:%u end:%u SNDUSRBUFF:%zu SNDSGMBUFF:%ld", getWindowBase(&(conn->sndwnd)), getWindowNext(&(conn->sndwnd)), getWindowEnd(&(conn->sndwnd)), getStrBuffSize(&(conn->sndusrbuff)), getSgmBuffSize(&(conn->sndsgmbuff)));

	joinThread(conn->receiver);
}
/**
 * Cancels the current write of fitness data
 */
void GarminFilebasedDevice::cancelWriteFitnessData() {
    cancelThread();
}
void GarminFilebasedDevice::cancelWriteToGps() {
    cancelThread();
}
Ejemplo n.º 11
0
void Edge305Device::cancelReadFromGps() {
    if (Log::enabledDbg()) Log::dbg("Canceling thread to read gpx from garmin device: "+this->displayName);
    cancelThread();
}
Ejemplo n.º 12
0
void Edge305Device::cancelReadFitnessDetail() {
    cancelThread();
}
Ejemplo n.º 13
0
void Edge305Device::cancelReadFitnessData() {
    cancelThread();
}
Ejemplo n.º 14
0
HttpServer::~HttpServer() {
	cancelThread();
	joinThread();
}