Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7414311
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T07:04:53+00:00 2026-05-29T07:04:53+00:00

Does a QSemaphore need to be released before deletion? If yes, I should call

  • 0
  • Does a QSemaphore need to be released before deletion?

  • If yes, I should call semaphore->release(n) before delete semaphore, but how do I know how many (n) resources are acquired? (I know how many resources are available(), but not the overall “size” of the semaphore.)

Reason for my question: I’m hunting down memory leaks and found a QSemaphore that created a memory leak although delete was (seems to have been) called on it. Maybe that happened because it was not released correctly – The doc says “Warning: Destroying a semaphore that is in use may result in undefined behavior.“

Edit: The memory leak actually was the result of a memory dump function placed before all objects were destroyed. Adding an extra scope { ... } helped there. Nevertheless, my question remains.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T07:04:54+00:00Added an answer on May 29, 2026 at 7:04 am

    I do not think you need to release a semaphore before destruction, as release() just adds a specified number of resources (aka permits) to the semaphore. If you look at the examples for QSemaphore, you can find that release() can increase the number of available permits beyond the initial amount.

    What the doc says is that no thread should operate with the semaphore that is being destroyed. In other words, all threads should complete their calls of the semaphore object methods, whatever those are, before it can be safely destroyed. And the class itself has no support for this; it’s solely application responsibility to ensure that, by external means. Actually, it’s a common situation in multi-threaded programming that destruction of an object (even a synchronization object) that is still in use is unsafe.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Does anyone know how .NET handles a timeout on a call to Semaphore.WaitOne(timeout) ?
Does anybody know any good resources for learning how to program CIL with in-depth
Does anyone know how to get IntelliSense to work reliably when working in C/C++
Does anyone know how to transform a enum value to a human readable value?
I'm not sure if I actually need this right now but if my app
Does using a lock have better performance than using a local (single application) semaphore?
Does anyone know if when creating a mutex, it's a must to initialize it
Does anyone know how I can implement a single Touch Event. A simple, one
when a C# program holds a named semaphore, it does not seem to be
Does anyone know which of the two locking constructs is faster? I have: private

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.