Giter Site home page Giter Site logo

sigkill about new-session-manager HOT 5 CLOSED

grammoboy2 avatar grammoboy2 commented on June 16, 2024
sigkill

from new-session-manager.

Comments (5)

grammoboy2 avatar grammoboy2 commented on June 16, 2024

Also the 60 seconds wait time, might not be a wild guess. I can replicate a (not too practical, granted) session which takes 60 seconds to abort cleanly. (Why does it take so long, is a other question I guess.)

from new-session-manager.

diovudau avatar diovudau commented on June 16, 2024

I agree that finding out why clients hang has the priority. I experienced that myself and went on a bug hunt in my own programs, only to find out that Carla did the same. I don't know how jack metada could have anything to do with it though. Jack metadata does not need to be deleted manually by the clients, they can just quit.

And I admit that I still need to test if this 30/60s wait time happens after the session is closed or during the close operation. I thought it was after all clients had already reported, that they are done quitting. And THEN the process is still present.

The incentive for this is a FIXME comment in the code by Jonathan btw, to check on hanging clients and purge them. There are two places in the code that are copy pasted. My recent code change just handles one of them, the more common one.

from new-session-manager.

grammoboy2 avatar grammoboy2 commented on June 16, 2024

Why does it take so long, is a other question I guess.)

Looks like clients (like Carla, drumkv1_jack, ... ) are just responding quite slow on SIGTERM. Even when doing killall outside nsm, they're slow to respond (at least when multiple instances are running).

from new-session-manager.

grammoboy2 avatar grammoboy2 commented on June 16, 2024

SIGKILL as last resort is a option in this scenario probably (people won't die), with as disadvantage that bugs in clients might not get noticed / reported / improved / fixed.

But FYI some sessions seems to close cleanly, even after 60 seconds.

from new-session-manager.

grammoboy2 avatar grammoboy2 commented on June 16, 2024

FYI: Messing (quite literally) around with the code, adding osc_server->wait( 100 ); in close_session(), seems to improve closing a session significantly. I leave it to real C++/liblo coders to answer why, but at least there is an impact with a session with lot of clients (tested with a bunch of Mamba clients). Maybe it is useful to get this improved.

void
close_session ( )
{
    if ( ! session_path )
        return;

    for ( std::list<Client*>::iterator i = client.begin();
          i != client.end();
          ++i )
    {
        command_client_to_quit( *i );
        osc_server->wait( 100 ); 
      
    }

    wait_for_killed_clients_to_die();

from new-session-manager.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.