void UnixSignalHandler::waitforstop(RefCountedPtr<iSvrService> &localService)
{
    //This function is a blocking call until the service has stopped
    while (!localService->isStopped())
    {
            ThdManager::Sleep( 1000 );
    }   

}
Beispiel #2
0
void 
CService::OnStop()
{
    RefCountedPtr<iSvrService> localService = _theService;

    localService->stop();

    DWORD waitHint = 1;

    while ( true )
    {
        SetStatus( SERVICE_STOP_PENDING, waitHint++, 2000 );
        if ( !localService->isStopped() )
        {
            ThdManager::Sleep( 1000 );
        }
        else
        {
            break;
        }
    }    
}