Problem with QT / Threads / Signals / Slots

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Frank Bossy

    Problem with QT / Threads / Signals / Slots

    Dear group :)

    I don't quite understand the meaning of this paragraph in the qt docu
    (http://doc.trolltech.com/3.1/threads.html):

    ***SNIP
    The Signals and Slots mechanism can be used in separate threads, as
    long as the rules for QObject based classes are followed. The Signals
    and Slots mechanism is synchronous: when a signal is emitted, all
    slots are called immediately. The slots are executed in the thread
    context that emitted the signal.
    ***SNIP

    Part of my program consists of the following code:
    bool
    MyBUE::stopServ er()
    {
    QProcess* proc = sd.getProcess() ; // already running process
    connect(proc, SIGNAL(processE xited()), this,
    SLOT(aServerHas Died()));
    proc->kill();
    cout << "############## #1" << endl;
    int counter = 10; // seconds
    cout << "############## #2" << endl;
    while (proc->isRunning()) {
    cout << "############## #3" << endl;
    m_waiter.wait(1 000/*ms*/); // A QWaitCondition
    cout << "############## #4" << endl;
    if (counter-- == 0) break;
    cout << "############## #5" << endl;
    }
    if (proc->isRunning()) {
    cout << "############## #6" << endl;
    cout << "Could not terminate process." << endl;
    cout << "############## #7" << endl;
    return false;
    }
    cout << "Server terminated by stopServer." << endl;
    cout << "############## #8" << endl;
    return true;
    }

    void
    MyBUE::aServerH asDied()
    {
    m_waiter.wait(5 000/*ms*/);
    cout << "###XXX###" << endl;
    }

    I get the following result:

    ############### 1
    ############### 2
    ############### 3
    <NO PAUSE!?>
    ############### 4
    ############### 5
    <5 SECONDS PAUSE>
    ###XXX###
    Server terminated by stopServer.
    ############### 8


    Could please someone explain to me this behaviour? I don't understand
    it :(

    Any help would be greatly appreciated :)

    bye,
    Frank Bossy
  • Victor Bazarov

    #2
    Re: Problem with QT / Threads / Signals / Slots

    "Frank Bossy" <frank.bossy@ t-systems.com> wrote...[color=blue]
    > Dear group :)[/color]

    Dear Frank,
    [color=blue]
    >
    > I don't quite understand the meaning of this paragraph in the qt docu
    > (http://doc.trolltech.com/3.1/threads.html):
    > [...][/color]

    Qt, threading, Slots, and related things are not defined by the
    C++ language. They happen to be, therefore, outside the scope
    of this newsgroup. Perhaps there is a better place to ask your
    question, like the TrollTech tech support or, maybe the newsgroup
    for your platform... Or even their web site, where I managed to
    locate this archive: http://lists.trolltech.com/qt-interest/ ...

    Victor


    Comment

    Working...