Exemple #1
0
def boot():
    
    if result.temp_dir is not None:
        
        HydrusPaths.SetEnvTempDir( result.temp_dir )
        
    
    controller = None
    
    with HydrusLogger.HydrusLogger( db_dir, 'client' ) as logger:
        
        try:
            
            HydrusData.Print( 'hydrus client started' )
            
            if not HG.twisted_is_broke:
                
                import threading
                
                threading.Thread( target = reactor.run, name = 'twisted', kwargs = { 'installSignalHandlers' : 0 } ).start()
                
            
            from hydrus.client import ClientController
            
            controller = ClientController.Controller( db_dir )
            
            controller.Run()
            
        except:
            
            HydrusData.Print( 'hydrus client failed' )
            
            import traceback
            
            HydrusData.Print( traceback.format_exc() )
            
        finally:
            
            HG.view_shutdown = True
            HG.model_shutdown = True
            
            if controller is not None:
                
                controller.pubimmediate( 'wake_daemons' )
                
            
            if not HG.twisted_is_broke:
                
                reactor.callFromThread( reactor.stop )
                
            
            HydrusData.Print( 'hydrus client shut down' )
            
        
    
    HG.shutdown_complete = True
    
    if HG.restart:
        
        HydrusData.RestartProcess()
        controller = ClientController.Controller(db_dir)

        controller.Run()

    except:

        HydrusData.Print('hydrus client failed')

        HydrusData.Print(traceback.format_exc())

    finally:

        HG.view_shutdown = True
        HG.model_shutdown = True

        if controller is not None:

            controller.pubimmediate('wake_daemons')

        if not HG.twisted_is_broke:

            reactor.callFromThread(reactor.stop)

        HydrusData.Print('hydrus client shut down')

HG.shutdown_complete = True

if HG.restart:

    HydrusData.RestartProcess()