Index: /trunk/src/VBox/HostServices/GuestProperties/service.cpp
===================================================================
--- /trunk/src/VBox/HostServices/GuestProperties/service.cpp	(revision 75988)
+++ /trunk/src/VBox/HostServices/GuestProperties/service.cpp	(revision 75989)
@@ -213,5 +213,5 @@
      * @param   pProp         where to return the property found.  If none is
      *                        found this will be set to nil.
-     * @throws  can throw std::bad_alloc
+     * @throws  nothing
      * @thread  HGCM
      */
@@ -406,5 +406,5 @@
     }
 
-    void setHostVersionProps();
+    int setHostVersionProps();
     void incrementCounterProp(const char *pszName);
     static DECLCALLBACK(void) svcNotify(void *pvService, HGCMNOTIFYEVENT enmEvent);
@@ -581,5 +581,6 @@
                 {
                     /* Update existing property. */
-                    pProp->mValue     = papszValues[i];
+                    rc = pProp->mValue.assignNoThrow(papszValues[i]);
+                    AssertRCBreak(rc);
                     pProp->mTimestamp = paNsTimestamps[i];
                     pProp->mFlags     = fFlags;
@@ -588,9 +589,11 @@
                 {
                     /* Create a new property */
-                    pProp = new Property(papszNames[i], papszValues[i], paNsTimestamps[i], fFlags);
-                    if (!pProp)
+                    try
                     {
-                        rc = VERR_NO_MEMORY;
-                        break;
+                        pProp = new Property(papszNames[i], papszValues[i], paNsTimestamps[i], fFlags);
+                    }
+                    catch (std::bad_alloc &)
+                    {
+                        return VERR_NO_MEMORY;
                     }
                     if (RTStrSpaceInsert(&mhProperties, &pProp->mStrCore))
@@ -793,7 +796,10 @@
         if (pProp)
         {
-            pProp->mValue = pcszValue;
-            pProp->mTimestamp = nsTimestamp;
-            pProp->mFlags = fFlags;
+            rc = pProp->mValue.assignNoThrow(pcszValue);
+            if (RT_SUCCESS(rc))
+            {
+                pProp->mTimestamp = nsTimestamp;
+                pProp->mFlags = fFlags;
+            }
         }
         else if (mcProperties < GUEST_PROP_MAX_PROPS)
@@ -1043,5 +1049,5 @@
 
 /** Helper query used by getOldNotification
- * @throws  can throw std::bad_alloc
+ * @throws  nothing
  */
 int Service::getOldNotificationInternal(const char *pszPatterns, uint64_t nsTimestamp, Property *pProp)
@@ -1064,5 +1070,12 @@
         if (base->Matches(pszPatterns))
         {
-            *pProp = *base;
+            try
+            {
+                *pProp = *base;
+            }
+            catch (std::bad_alloc &)
+            {
+                rc = VERR_NO_MEMORY;
+            }
             return rc;
         }
@@ -1119,5 +1132,5 @@
  * @param   paParms     the array of HGCM parameters
  * @thread  HGCM
- * @throws  can throw std::bad_alloc
+ * @throws  nothing
  */
 int Service::getNotification(uint32_t u32ClientId, VBOXHGCMCALLHANDLE callHandle,
@@ -1161,18 +1174,32 @@
                  * Protection against clients, which cancel and resubmits requests.
                  */
+                uint32_t cPendingWaits = 0;
                 CallList::iterator it = mGuestWaiters.begin();
                 while (it != mGuestWaiters.end())
                 {
-                    const char *pszPatternsExisting;
-                    uint32_t cchPatternsExisting;
-                    int rc3 = HGCMSvcGetCStr(&it->mParms[0], &pszPatternsExisting, &cchPatternsExisting);
-
-                    if (   RT_SUCCESS(rc3)
-                        && u32ClientId == it->u32ClientId
-                        && RTStrCmp(pszPatterns, pszPatternsExisting) == 0)
+                    if (u32ClientId == it->u32ClientId)
                     {
-                        /* Complete the old request. */
-                        mpHelpers->pfnCallComplete(it->mHandle, VERR_INTERRUPTED);
-                        it = mGuestWaiters.erase(it);
+                        const char *pszPatternsExisting;
+                        uint32_t    cchPatternsExisting;
+                        int rc3 = HGCMSvcGetCStr(&it->mParms[0], &pszPatternsExisting, &cchPatternsExisting);
+                        if (   RT_SUCCESS(rc3)
+                            && RTStrCmp(pszPatterns, pszPatternsExisting) == 0)
+                        {
+                            /* Complete the old request. */
+                            mpHelpers->pfnCallComplete(it->mHandle, VERR_INTERRUPTED);
+                            it = mGuestWaiters.erase(it);
+                        }
+                        //else if (mpHelpers->pfnIsCallCancelled(it->mHandle))
+                        //{
+                        //    /* Cleanup cancelled request. */
+                        //    mpHelpers->pfnCallComplete(it->mHandle, VERR_INTERRUPTED);
+                        //    it = mGuestWaiters.erase(it);
+                        //}
+                        else
+                        {
+                            /** @todo check if cancelled. */
+                            cPendingWaits++;
+                            ++it;
+                        }
                     }
                     else
@@ -1180,7 +1207,22 @@
                 }
 
-                mGuestWaiters.push_back(GuestCall(u32ClientId, callHandle, GUEST_PROP_FN_GET_NOTIFICATION,
-                                                  cParms, paParms, rc));
-                rc = VINF_HGCM_ASYNC_EXECUTE;
+                //if (cPendingWaits < 16)
+                {
+                    try
+                    {
+                        mGuestWaiters.push_back(GuestCall(u32ClientId, callHandle, GUEST_PROP_FN_GET_NOTIFICATION,
+                                                          cParms, paParms, rc));
+                        rc = VINF_HGCM_ASYNC_EXECUTE;
+                    }
+                    catch (std::bad_alloc &)
+                    {
+                        rc = VERR_NO_MEMORY;
+                    }
+                }
+                //else
+                //{
+                //    LogFunc(("Too many pending waits already!\n"));
+                //    rc = VERR_OUT_OF_RESOURCES;
+                //}
             }
             /*
@@ -1204,7 +1246,8 @@
  * Notify the service owner and the guest that a property has been
  * added/deleted/changed
- * @param pszProperty  the name of the property which has changed
- * @param nsTimestamp  the time at which the change took place
- *
+ *
+ * @param   pszProperty The name of the property which has changed.
+ * @param   nsTimestamp The time at which the change took place.
+ * @throws  nothing.
  * @thread  HGCM service
  */
@@ -1219,9 +1262,16 @@
 
     /*
+     * Don't keep too many changes around.
+     */
+    if (mGuestNotifications.size() >= GUEST_PROP_MAX_GUEST_NOTIFICATIONS)
+        mGuestNotifications.pop_front();
+
+    /*
      * Try to find the property.  Create a change event if we find it and a
      * delete event if we do not.
      */
     Property prop;
-    prop.mName = pszProperty;
+    int rc = prop.mName.assignNoThrow(pszProperty);
+    AssertRCReturn(rc, rc);
     prop.mTimestamp = nsTimestamp;
     /* prop is currently a delete event for pszProperty */
@@ -1230,5 +1280,6 @@
     {
         /* Make prop into a change event. */
-        prop.mValue = pProp->mValue;
+        rc = prop.mValue.assignNoThrow(pProp->mValue);
+        AssertRCReturn(rc, rc);
         prop.mFlags = pProp->mFlags;
     }
@@ -1236,20 +1287,19 @@
     /* Release guest waiters if applicable and add the event
      * to the queue for guest notifications */
-    int rc = VINF_SUCCESS;
-    try
-    {
-        CallList::iterator it = mGuestWaiters.begin();
+    CallList::iterator it = mGuestWaiters.begin();
+    if (it != mGuestWaiters.end())
+    {
+        const char *pszPatterns;
+        uint32_t    cchPatterns;
+        HGCMSvcGetCStr(&it->mParms[0], &pszPatterns, &cchPatterns);
+
         while (it != mGuestWaiters.end())
         {
-            const char *pszPatterns;
-            uint32_t cchPatterns;
-            HGCMSvcGetCStr(&it->mParms[0], &pszPatterns, &cchPatterns);
             if (prop.Matches(pszPatterns))
             {
-                GuestCall curCall = *it;
-                int rc2 = getNotificationWriteOut(curCall.mParmsCnt, curCall.mParms, prop);
+                int rc2 = getNotificationWriteOut(it->mParmsCnt, it->mParms, prop);
                 if (RT_SUCCESS(rc2))
-                    rc2 = curCall.mRc;
-                mpHelpers->pfnCallComplete(curCall.mHandle, rc2);
+                    rc2 = it->mRc;
+                mpHelpers->pfnCallComplete(it->mHandle, rc2);
                 it = mGuestWaiters.erase(it);
             }
@@ -1257,11 +1307,9 @@
                 ++it;
         }
-
+    }
+
+    try
+    {
         mGuestNotifications.push_back(prop);
-
-        /** @todo r=andy This list does not have a purpose but for tracking
-          *              the timestamps ... */
-        if (mGuestNotifications.size() > GUEST_PROP_MAX_GUEST_NOTIFICATIONS)
-            mGuestNotifications.pop_front();
     }
     catch (std::bad_alloc &)
@@ -1381,61 +1429,52 @@
                     VBOXHGCMSVCPARM paParms[])
 {
-    int rc = VINF_SUCCESS;
+    int rc;
     LogFlowFunc(("u32ClientID = %d, fn = %d, cParms = %d, pparms = %p\n",
                  u32ClientID, eFunction, cParms, paParms));
 
-    try
-    {
-        switch (eFunction)
-        {
-            /* The guest wishes to read a property */
-            case GUEST_PROP_FN_GET_PROP:
-                LogFlowFunc(("GET_PROP\n"));
-                rc = getProperty(cParms, paParms);
-                break;
-
-            /* The guest wishes to set a property */
-            case GUEST_PROP_FN_SET_PROP:
-                LogFlowFunc(("SET_PROP\n"));
-                rc = setProperty(cParms, paParms, true);
-                break;
-
-            /* The guest wishes to set a property value */
-            case GUEST_PROP_FN_SET_PROP_VALUE:
-                LogFlowFunc(("SET_PROP_VALUE\n"));
-                rc = setProperty(cParms, paParms, true);
-                break;
-
-            /* The guest wishes to remove a configuration value */
-            case GUEST_PROP_FN_DEL_PROP:
-                LogFlowFunc(("DEL_PROP\n"));
-                rc = delProperty(cParms, paParms, true);
-                break;
-
-            /* The guest wishes to enumerate all properties */
-            case GUEST_PROP_FN_ENUM_PROPS:
-                LogFlowFunc(("ENUM_PROPS\n"));
-                rc = enumProps(cParms, paParms);
-                break;
-
-            /* The guest wishes to get the next property notification */
-            case GUEST_PROP_FN_GET_NOTIFICATION:
-                LogFlowFunc(("GET_NOTIFICATION\n"));
-                rc = getNotification(u32ClientID, callHandle, cParms, paParms);
-                break;
-
-            default:
-                rc = VERR_NOT_IMPLEMENTED;
-        }
-    }
-    catch (std::bad_alloc &)
-    {
-        rc = VERR_NO_MEMORY;
+    switch (eFunction)
+    {
+        /* The guest wishes to read a property */
+        case GUEST_PROP_FN_GET_PROP:
+            LogFlowFunc(("GET_PROP\n"));
+            rc = getProperty(cParms, paParms);
+            break;
+
+        /* The guest wishes to set a property */
+        case GUEST_PROP_FN_SET_PROP:
+            LogFlowFunc(("SET_PROP\n"));
+            rc = setProperty(cParms, paParms, true);
+            break;
+
+        /* The guest wishes to set a property value */
+        case GUEST_PROP_FN_SET_PROP_VALUE:
+            LogFlowFunc(("SET_PROP_VALUE\n"));
+            rc = setProperty(cParms, paParms, true);
+            break;
+
+        /* The guest wishes to remove a configuration value */
+        case GUEST_PROP_FN_DEL_PROP:
+            LogFlowFunc(("DEL_PROP\n"));
+            rc = delProperty(cParms, paParms, true);
+            break;
+
+        /* The guest wishes to enumerate all properties */
+        case GUEST_PROP_FN_ENUM_PROPS:
+            LogFlowFunc(("ENUM_PROPS\n"));
+            rc = enumProps(cParms, paParms);
+            break;
+
+        /* The guest wishes to get the next property notification */
+        case GUEST_PROP_FN_GET_NOTIFICATION:
+            LogFlowFunc(("GET_NOTIFICATION\n"));
+            rc = getNotification(u32ClientID, callHandle, cParms, paParms);
+            break;
+
+        default:
+            rc = VERR_NOT_IMPLEMENTED;
     }
     LogFlowFunc(("rc = %Rrc\n", rc));
     if (rc != VINF_HGCM_ASYNC_EXECUTE)
-    {
-        mpHelpers->pfnCallComplete (callHandle, rc);
-    }
+        mpHelpers->pfnCallComplete(callHandle, rc);
 }
 
@@ -1490,71 +1529,62 @@
 int Service::hostCall (uint32_t eFunction, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
 {
-    int rc = VINF_SUCCESS;
-
-    LogFlowFunc(("fn = %d, cParms = %d, pparms = %p\n",
-                 eFunction, cParms, paParms));
-
-    try
-    {
-        switch (eFunction)
-        {
-            /* The host wishes to set a block of properties */
-            case GUEST_PROP_FN_HOST_SET_PROPS:
-                LogFlowFunc(("SET_PROPS_HOST\n"));
-                rc = setPropertyBlock(cParms, paParms);
-                break;
-
-            /* The host wishes to read a configuration value */
-            case GUEST_PROP_FN_HOST_GET_PROP:
-                LogFlowFunc(("GET_PROP_HOST\n"));
-                rc = getProperty(cParms, paParms);
-                break;
-
-            /* The host wishes to set a configuration value */
-            case GUEST_PROP_FN_HOST_SET_PROP:
-                LogFlowFunc(("SET_PROP_HOST\n"));
-                rc = setProperty(cParms, paParms, false);
-                break;
-
-            /* The host wishes to set a configuration value */
-            case GUEST_PROP_FN_HOST_SET_PROP_VALUE:
-                LogFlowFunc(("SET_PROP_VALUE_HOST\n"));
-                rc = setProperty(cParms, paParms, false);
-                break;
-
-            /* The host wishes to remove a configuration value */
-            case GUEST_PROP_FN_HOST_DEL_PROP:
-                LogFlowFunc(("DEL_PROP_HOST\n"));
-                rc = delProperty(cParms, paParms, false);
-                break;
-
-            /* The host wishes to enumerate all properties */
-            case GUEST_PROP_FN_HOST_ENUM_PROPS:
-                LogFlowFunc(("ENUM_PROPS\n"));
-                rc = enumProps(cParms, paParms);
-                break;
-
-            /* The host wishes to set global flags for the service */
-            case GUEST_PROP_FN_HOST_SET_GLOBAL_FLAGS:
-                LogFlowFunc(("SET_GLOBAL_FLAGS_HOST\n"));
-                if (cParms == 1)
-                {
-                    uint32_t fFlags;
-                    rc = HGCMSvcGetU32(&paParms[0], &fFlags);
-                    if (RT_SUCCESS(rc))
-                        mfGlobalFlags = fFlags;
-                }
-                else
-                    rc = VERR_INVALID_PARAMETER;
-                break;
-
-            default:
-                rc = VERR_NOT_SUPPORTED;
-                break;
-        }
-    }
-    catch (std::bad_alloc &)
-    {
-        rc = VERR_NO_MEMORY;
+    int rc;
+    LogFlowFunc(("fn = %d, cParms = %d, pparms = %p\n", eFunction, cParms, paParms));
+
+    switch (eFunction)
+    {
+        /* The host wishes to set a block of properties */
+        case GUEST_PROP_FN_HOST_SET_PROPS:
+            LogFlowFunc(("SET_PROPS_HOST\n"));
+            rc = setPropertyBlock(cParms, paParms);
+            break;
+
+        /* The host wishes to read a configuration value */
+        case GUEST_PROP_FN_HOST_GET_PROP:
+            LogFlowFunc(("GET_PROP_HOST\n"));
+            rc = getProperty(cParms, paParms);
+            break;
+
+        /* The host wishes to set a configuration value */
+        case GUEST_PROP_FN_HOST_SET_PROP:
+            LogFlowFunc(("SET_PROP_HOST\n"));
+            rc = setProperty(cParms, paParms, false);
+            break;
+
+        /* The host wishes to set a configuration value */
+        case GUEST_PROP_FN_HOST_SET_PROP_VALUE:
+            LogFlowFunc(("SET_PROP_VALUE_HOST\n"));
+            rc = setProperty(cParms, paParms, false);
+            break;
+
+        /* The host wishes to remove a configuration value */
+        case GUEST_PROP_FN_HOST_DEL_PROP:
+            LogFlowFunc(("DEL_PROP_HOST\n"));
+            rc = delProperty(cParms, paParms, false);
+            break;
+
+        /* The host wishes to enumerate all properties */
+        case GUEST_PROP_FN_HOST_ENUM_PROPS:
+            LogFlowFunc(("ENUM_PROPS\n"));
+            rc = enumProps(cParms, paParms);
+            break;
+
+        /* The host wishes to set global flags for the service */
+        case GUEST_PROP_FN_HOST_SET_GLOBAL_FLAGS:
+            LogFlowFunc(("SET_GLOBAL_FLAGS_HOST\n"));
+            if (cParms == 1)
+            {
+                uint32_t fFlags;
+                rc = HGCMSvcGetU32(&paParms[0], &fFlags);
+                if (RT_SUCCESS(rc))
+                    mfGlobalFlags = fFlags;
+            }
+            else
+                rc = VERR_INVALID_PARAMETER;
+            break;
+
+        default:
+            rc = VERR_NOT_SUPPORTED;
+            break;
     }
 
@@ -1623,5 +1653,5 @@
  * Sets the VBoxVer, VBoxVerExt and VBoxRev properties.
  */
-void Service::setHostVersionProps()
+int Service::setHostVersionProps()
 {
     uint64_t nsTimestamp = getCurrentTimestamp();
@@ -1629,15 +1659,19 @@
     /* Set the raw VBox version string as a guest property. Used for host/guest
      * version comparison. */
-    setPropertyInternal("/VirtualBox/HostInfo/VBoxVer", VBOX_VERSION_STRING_RAW,
-                        GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp);
+    int rc = setPropertyInternal("/VirtualBox/HostInfo/VBoxVer", VBOX_VERSION_STRING_RAW,
+                                 GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp);
+    AssertRCReturn(rc, rc);
 
     /* Set the full VBox version string as a guest property. Can contain vendor-specific
      * information/branding and/or pre-release tags. */
-    setPropertyInternal("/VirtualBox/HostInfo/VBoxVerExt", VBOX_VERSION_STRING,
-                        GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp);
+    rc = setPropertyInternal("/VirtualBox/HostInfo/VBoxVerExt", VBOX_VERSION_STRING,
+                             GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp + 1);
+    AssertRCReturn(rc, rc);
 
     /* Set the VBox SVN revision as a guest property */
-    setPropertyInternal("/VirtualBox/HostInfo/VBoxRev", RTBldCfgRevisionStr(),
-                        GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp);
+    rc = setPropertyInternal("/VirtualBox/HostInfo/VBoxRev", RTBldCfgRevisionStr(),
+                             GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsTimestamp + 2);
+    AssertRCReturn(rc, rc);
+    return VINF_SUCCESS;
 }
 
@@ -1651,25 +1685,18 @@
     AssertPtrReturnVoid(pThis);
 
-    try
-    {
-        /* Make sure the host version properties have been touched and are
-           up-to-date after a restore: */
-        if (   !pThis->m_fSetHostVersionProps
-            && (enmEvent == HGCMNOTIFYEVENT_RESUME || enmEvent == HGCMNOTIFYEVENT_POWER_ON))
-        {
-            pThis->setHostVersionProps();
-            pThis->m_fSetHostVersionProps = true;
-        }
-
-        if (enmEvent == HGCMNOTIFYEVENT_RESUME)
-            pThis->incrementCounterProp("/VirtualBox/VMInfo/ResumeCounter");
-
-        if (enmEvent == HGCMNOTIFYEVENT_RESET)
-            pThis->incrementCounterProp("/VirtualBox/VMInfo/ResetCounter");
-    }
-    catch (std::bad_alloc &)
-    {
-        /* ignore */
-    }
+    /* Make sure the host version properties have been touched and are
+       up-to-date after a restore: */
+    if (   !pThis->m_fSetHostVersionProps
+        && (enmEvent == HGCMNOTIFYEVENT_RESUME || enmEvent == HGCMNOTIFYEVENT_POWER_ON))
+    {
+        pThis->setHostVersionProps();
+        pThis->m_fSetHostVersionProps = true;
+    }
+
+    if (enmEvent == HGCMNOTIFYEVENT_RESUME)
+        pThis->incrementCounterProp("/VirtualBox/VMInfo/ResumeCounter");
+
+    if (enmEvent == HGCMNOTIFYEVENT_RESET)
+        pThis->incrementCounterProp("/VirtualBox/VMInfo/ResetCounter");
 }
 
@@ -1713,27 +1740,25 @@
      * Insert standard host properties.
      */
-    try
-    {
-        /* The host version will but updated again on power on or resume
-           (after restore), however we need the properties now for restored
-           guest notification/wait calls. */
-        setHostVersionProps();
-
-        /* Sysprep execution by VBoxService (host is allowed to change these). */
-        uint64_t nsNow = getCurrentTimestamp();
-        setPropertyInternal("/VirtualBox/HostGuest/SysprepExec", "", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
-        setPropertyInternal("/VirtualBox/HostGuest/SysprepArgs", "", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
-
-        /* Resume and reset counters. */
-        setPropertyInternal("/VirtualBox/VMInfo/ResumeCounter", "0", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
-        setPropertyInternal("/VirtualBox/VMInfo/ResetCounter", "0", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
-    }
-    catch (std::bad_alloc &)
-    {
-        return VERR_NO_MEMORY;
-    }
+    /* The host version will but updated again on power on or resume
+       (after restore), however we need the properties now for restored
+       guest notification/wait calls. */
+    int rc = setHostVersionProps();
+    AssertRCReturn(rc, rc);
+
+    /* Sysprep execution by VBoxService (host is allowed to change these). */
+    uint64_t nsNow = getCurrentTimestamp();
+    rc = setPropertyInternal("/VirtualBox/HostGuest/SysprepExec", "", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
+    AssertRCReturn(rc, rc);
+    rc = setPropertyInternal("/VirtualBox/HostGuest/SysprepArgs", "", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
+    AssertRCReturn(rc, rc);
+
+    /* Resume and reset counters. */
+    rc = setPropertyInternal("/VirtualBox/VMInfo/ResumeCounter", "0", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
+    AssertRCReturn(rc, rc);
+    rc = setPropertyInternal("/VirtualBox/VMInfo/ResetCounter",  "0", GUEST_PROP_F_TRANSIENT | GUEST_PROP_F_RDONLYGUEST, nsNow);
+    AssertRCReturn(rc, rc);
 
     /* The host notification thread and queue. */
-    int rc = RTReqQueueCreate(&mhReqQNotifyHost);
+    rc = RTReqQueueCreate(&mhReqQNotifyHost);
     if (RT_SUCCESS(rc))
     {
@@ -1744,5 +1769,5 @@
                             RTTHREADTYPE_DEFAULT,
                             RTTHREADFLAGS_WAITABLE,
-                            "GSTPROPNTFY");
+                            "GstPropNtfy");
         if (RT_SUCCESS(rc))
         {
