Changeset 514

Show
Ignore:
Timestamp:
04/13/08 12:08:37 (9 months ago)
Author:
LeoD
Message:

fixed Stack Overflow while creating ServerSocket?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/defend/Loop.d

    r511 r514  
    3636            // Fibers are used so that the function can return to the main loop, 
    3737            // but the function's stack is still alive. Kind of like a closure. 
    38             auto fiber = new Fiber(func); 
     38            auto fiber = new Fiber(func, 1024 * 100); 
    3939             
    4040            auto memoryUsage = getMemoryUsage(); 
  • trunk/src/defend/game/Game.d

    r513 r514  
    8888    MainCamera mainCamera; 
    8989 
    90     // The mini screen 
    91     bool miniScreenActivated = false; 
    92     StaticCamera miniScreenCamera; 
    93     Sprite miniScreenSprite; 
    94      
     90    // Mini map 
    9591    MiniMap miniMap; 
    9692 
     
    312308    }; 
    313309     
    314     keyboard.keyDownHandlers[KeyType.M] = (KeyboardInput) 
    315     { 
    316         miniScreenActivated = !miniScreenActivated; 
    317     }; 
    318      
    319310    keyboard.keyDownHandlers[KeyType.Escape] = (KeyboardInput) 
    320311    { 
     
    357348    delete server; 
    358349    delete hud; 
    359     delete miniScreenSprite; 
    360350    delete miniMap; 
    361351     
  • trunk/src/defend/game/net/Server.d

    r513 r514  
    638638        phaseMutex = new Mutex(); 
    639639 
    640         logger.info("creating server socket"); 
    641         listener = new ServerSocket(new InternetAddress("0.0.0.0", config.multiplayer.port) /*, 32, true*/); 
     640        logger.info("creating server socket on port {}", config.multiplayer.port); 
     641         
     642        bool loop = true; 
     643         
     644        const tryCount = 10; 
     645        uint tries = tryCount; 
     646         
     647        while(loop) 
     648        { 
     649            try 
     650            { 
     651                listener = new ServerSocket(new InternetAddress(config.multiplayer.port)); 
     652                loop = false; 
     653            } 
     654            catch(Exception exception) 
     655            { 
     656                logger.warn("failed to create server socket: {} ({}/{})", exception, tries, tryCount); 
     657                 
     658                if((loop = --tries > 0) == 0) 
     659                    throw exception; 
     660            } 
     661        } 
     662         
     663        assert(listener !is null); 
     664             
    642665        logger.info("server socket created"); 
    643666 
    644         logger.info("created on port {}", config.multiplayer.port); 
    645         logger.info("creating threads"); 
    646  
    647667        super(&run); 
    648668         
    649         logger.info("creating threads was successful"); 
    650669        logger.info("starting background thread"); 
    651          
    652670        start(); 
     671        logger.info("initialized"); 
    653672    } 
    654673     
  • trunk/src/gen/rend/opengl/Renderer.d

    r511 r514  
    497497        } 
    498498         
     499        statistics.texture_changes++; 
     500         
    499501        (cast(OGLTexture)texture).bind(); 
    500502    } 
     
    587589        if(shader is currentShader) 
    588590            return; 
    589             
     591         
    590592        currentShader = shader; 
     593        statistics.shader_changes++; 
    591594             
    592595        (cast(OGLShader)shader).bind(); 
  • trunk/src/gen/util/Statistics.d

    r505 r514  
    5050    uint*[char[]] entries; 
    5151 
    52     mixin(generateEntries("triangles rendered"[], "frustum bbox checks"[], "frustum bsphere checks"[])); 
     52    mixin(generateEntries("triangles rendered"[], 
     53                          "frustum bbox checks"[], 
     54                          "frustum bsphere checks"[], 
     55                          "texture changes"[], 
     56                          "shader changes"[])); 
    5357     
    5458    void render(GuiRenderer renderer, vec2i pos, Font font)