C++: Thread der durch Usereingabe geblockt wird stoppen oder killen

Hallo,
ich möchte einfach eine kurze Antwort haben. Ich hab schon danach gesucht, aber alles scheint irgendwie wie ein Workaround. Ich hab:

void userEingabe() {
  while (fenster Sollte Nicht Schließen()) {
    int eingabe;
    std::cout << "Gib was ein: ";
    std::cin >> eingabe;
  }
}

std::thread userEingabeThread(userEingabe, (((void))) );

userEingabeThread möchte ich jetzt stoppen oder killen, wenn Fenster geschlossen wurde. WIE?

(Es ist teilweise Pseudocode, aber ihr wisst bestimmt, was ich meinte).
Grüße

c++ - How can I terminate a C++11 thread while it’s waiting for std::cin? - Stack Overflow

Alles könnte sooo einfach sein:

    second = std::thread(fun1, window); // hier tue ich ein paar Dinge
    third = std::thread(fun2, window); // hier auch

    // glfw main loop ...
    while (!glfwWindowShouldClose(window)) {
        // hier ganz viele Dinge und so
    }

    std::terminate();

    // aufräumen ...
    release();
    glfwTerminate();
    
    std::cout << "alles ok" << std::endl; // wird nicht ausgegeben werden, wenn Fenster durch User geschlossen

    return 0;

Durch terminate “werden auch die Threads angesprochen” … es wird aber nicht mehr aufgeräumt…
Grüße

(Edit: Ja, C++11, vielleicht “spinne” ich auch).