I am implementing semaphore in c language.I have a POSIX counting semaphore. I want to assign a value to it. and i don't want to use Wait or Post. Can i do that? Is there any function like "setValue" for POSIX Semaphore ?
How to set POSIX semaphore value to 1?
6.7k Views Asked by KrunalParmar At
2
There are 2 best solutions below
0
too honest for this site
On
If you could directly change its value during normal operation (i.e. except for initialization), it would not be a semaphore anymore. So you might be looking for something different, maybe a thread-safe counter/shared variable? Such more complex shared objects are normaly implemented with the basic synchronization primitives, like locks/mutex/semaphore/etc. Which to use depends on what you want to implement.
OTOH, you are possibly presenting an XY-problem. Perhaps if you state what you actually want to achieve, we can point you to a better/easier/ solution.
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in POSIX
- Is it safe to assume 8-bit char on Linux and FreeBSD, based on POSIX?
- How many senders and receivers of a notification are possible in a POSIX message queue
- Does opendir() / FindFirstFile() get a snapshot of a directory?
- Differences in behavior of kill(pid, SIGINT) between Debian and Red Hat based distros
- select() always returns 0 Serial Port (UART) vxWorks
- some questions about posix_trace_* function
- In LDAP: Differentiating via OU or via attribute?
- recvmsg returns EAGAIN after select reports file descriptor is ready
- Can close of pipe's write end fail leaving reading process blocked?
- Why, on Linux (specifically Ubuntu 20.04 LTS), a POSIX shared memory object survives reboot and then suddenly belongs to the "root" user?
- file.tell() after a write is not correct in append mode?
- Map UNIX "nobody" and "nogroup" to Win32 Accounts/SIDs?
- POSIX Message Queue - "Message too long" on send
- Does the POSIX Standard really mean that a non-thread safe function can break the thread-safety of every other function?
- awk dot in regex doesn't match space
Related Questions in SEMAPHORE
- Binary Semaphore vs Mutux interview question
- Why sem_post() looks like blocked when using WinAPI and Semaphore to create a program that re-running again and again
- How to Create Multi-Unit Acquire/Release with std::counting_semaphore in C++20 for a Producer-Consumer Scenario?
- Techniques for making a method non-reentrant
- Trying to find a way to limit the number of List<Task> that can run at one time
- ManagedIdentityCredential authentication failed: Adding the specified count to the semaphore would cause it to exceed its maximum count
- Strange output in a synchronization problem using binary semaphores in C
- C semaphore and shared memory
- How do I resolve the semaphore timeout expired issue, with SerialPort in .NET 7 C#?
- aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host :443 ssl:default [The semaphore timeout period has expired]
- Using Goroutines to Annotate and Fetch Data in Background – Semaphore Acquisition Error within Route Handler
- How can I implement a Semaphore via a database?
- What if we keep calling semGive multiple times without semTake in binary semaphore? What will be the behavior?
- Web App, control number of available tasks in Hangifre jobs, each executing Parallel.ForEachAsync
- Thread #1: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
Related Questions in BINARY-SEMAPHORE
- What if we keep calling semGive multiple times without semTake in binary semaphore? What will be the behavior?
- Which synchronisation method to use for data structure that maybe shared by *multiple processes*, [ another semaphore vs mutex question]?
- Why unable to acquire a semaphore immediately when another thread releases it?
- error: too many initializers for ‘std::array<std::counting_semaphore<1>, 4>’
- C++20 binary semaphore goes over max
- Synchronize parent and forked process using POSIX named semaphores to print in text file
- Implementing a semaphore through a file
- Toggling LED through button (ESP32 FreeRTOS) + binary semaphore
- Single use condition_variable
- What happens without a binary semaphore
- Operating System: Its beggining the my lecture but I couldn't write what was asked of me
- How does binary semaphore guarantee mutual exclusion?
- Unable to use std:: counting_semaphore in Visual Studio 2019 and 2022
- Is it strictly necessary to use mutex locks while accessing the buffers in producer-consumer problem?
- Multithread Binary Semaphore's: Alternating Outputs
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Wait and Post are the only operations supported by a classic semaphore. POSIX semaphores can be initialized with a count using sem_init(). Any kind of 'setValue' function would destroy the functionality of the semaphore by allowing units to be 'lost', eg. by being posted by one thread just before 'setValue' was called by another.
It's a really bad idea, which is why it is not implemented.