Ignore:
Timestamp:
Mar 8, 2010, 12:52:58 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.2 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/corelib/io/qprocess_symbian.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 20 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation ([email protected])
     
    920920    QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished(%d)", msecs);
    921921
    922     TRequestStatus timerStatus = 0;
    923     TRequestStatus logonStatus = 0;
     922    TRequestStatus timerStatus = ;
     923    TRequestStatus logonStatus = ;
    924924    bool timeoutOccurred = false;
    925925
     
    928928        symbianProcess->Logon(logonStatus);
    929929
    930         // Create timer
    931         RTimer timer;
    932         timer.CreateLocal();
    933         TTimeIntervalMicroSeconds32 interval(msecs*1000);
    934         timer.After(timerStatus, interval);
    935 
    936         QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting...");
    937         User::WaitForRequest(logonStatus, timerStatus);
    938         QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
    939 
    940         if (timerStatus == KErrNone)
    941             timeoutOccurred = true;
    942 
    943         timer.Cancel();
    944         timer.Close();
    945 
    946         symbianProcess->LogonCancel(logonStatus);
    947 
    948         // Eat cancel request completion so that it won't mess up main thread scheduling later
    949         User::WaitForRequest(logonStatus, timerStatus);
     930        if (msecs < 0) {
     931            // If timeout is negative, there is no timeout
     932            QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting (just logon)...");
     933            User::WaitForRequest(logonStatus);
     934            QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
     935        } else {
     936            // Create timer
     937            RTimer timer;
     938            timer.CreateLocal();
     939            TTimeIntervalMicroSeconds32 interval(msecs*1000);
     940            timer.After(timerStatus, interval);
     941
     942            QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Waiting (logon + timer)...");
     943            User::WaitForRequest(logonStatus, timerStatus);
     944            QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished() - Wait completed");
     945
     946            if (timerStatus == KErrNone)
     947                timeoutOccurred = true;
     948
     949            timer.Cancel();
     950            timer.Close();
     951
     952            symbianProcess->LogonCancel(logonStatus);
     953
     954            // Eat cancel request completion so that it won't mess up main thread scheduling later
     955            User::WaitForRequest(logonStatus, timerStatus);
     956        }
    950957    } else {
    951958        QPROCESS_DEBUG_PRINT("QProcessPrivate::waitForFinished(), qt_rprocess_running returned false");
Note: See TracChangeset for help on using the changeset viewer.