Den aktuellen Zählerstand eines Semaphore abfragen



  • Hallo,

    ich suche eine Möglichkeit sicher den Stand eines Semaphores abzufragen.

    Nun gibt es in der API mit RealeaseSemaphore die Möglichkeit mit lpPreviousCount den letzten Zählerstand auszulesen, aber dazu müsste ich natürlich RealeaseSemaphore aufrufen, nachdem ich selbst einen Eintritt mit WaitForSingleObject angefordert habe. Das erscheint mir nicht unbedingt ideal.

    Gibt es eine einfache Möglichkeit auf sichere Art und Weise den aktuellen Zählerstand eines Semaphores zu erhalten?

    Gruß,
    Steven



  • Hallo,

    Sometimes it is useful to know the current resource count of a semaphore without actually altering the count, but there is no function that queries a semaphore's current resource count value. At first, I thought that calling ReleaseSemaphore and passing 0 for the lReleaseCount parameter might work by returning the actual count in *plPreviousCount. But this doesn't work; ReleaseSemaphore fills the long variable with 0. Next, I tried passing a really big number as the second parameter, hoping that it would not affect the current resource count because it would take it over the maximum. Again, ReleaseSemaphore filled *plPreviousCount with 0. Unfortunately, there is just no way to get the current resource count of a semaphore without altering i

    aus: http://www.microsoft.com/mspress/books/sampchap/2345e.aspx

    MfG,

    Probe-Nutzer


Log in to reply