Changeset 30436 in vbox for trunk/src/VBox/Additions/common/VBoxService
- Timestamp:
- Jun 24, 2010 1:41:39 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 63077
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExec.cpp
r30013 r30436 796 796 AssertPtr(pData); 797 797 798 /*799 * Tell the control thread that it can continue800 * spawning services.801 */802 RTThreadUserSignal(RTThreadSelf());803 798 VBoxServiceVerbose(3, "ControlExec: Thread of process \"%s\" started\n", pData->pszCmd); 804 799 … … 807 802 { 808 803 VBoxServiceError("ControlExec: Thread failed to connect to the guest control service, aborted! Error: %Rrc\n", rc); 804 RTThreadUserSignal(RTThreadSelf()); 809 805 return rc; 810 806 } 807 808 bool fSignalled = false; /* Indicator whether we signalled the thread user event already. */ 811 809 812 810 /* … … 868 866 pData->pszUser, pData->pszPassword, 869 867 &hProcess); 868 869 /* 870 * Tell the control thread that it can continue 871 * spawning services. This needs to be done after the new 872 * process has been started because otherwise signal handling 873 * on (Open) Solaris does not work correctly (see #5068). 874 */ 875 int rc2 = RTThreadUserSignal(RTThreadSelf()); 876 if (RT_FAILURE(rc2)) 877 rc = rc2; 878 fSignalled = true; 879 870 880 if (RT_SUCCESS(rc)) 871 881 { … … 928 938 VBoxServiceVerbose(3, "ControlExec: Thread of process \"%s\" (PID: %u) ended with rc=%Rrc\n", 929 939 pData->pszCmd, pData->uPID, rc); 940 941 /* 942 * If something went wrong signal the user event so that others don't wait 943 * forever on this thread. 944 */ 945 if (RT_FAILURE(rc) && !fSignalled) 946 RTThreadUserSignal(RTThreadSelf()); 930 947 return rc; 931 948 } … … 967 984 else 968 985 { 986 VBoxServiceVerbose(4, "ControlExec: Waiting for thread to initialize ...\n"); 987 969 988 /* Wait for the thread to initialize. */ 970 989 RTThreadUserWait(pThread->Thread, 60 * 1000);
Note:
See TracChangeset
for help on using the changeset viewer.