A message from our CEO about the future of Stack Overflow and Stack Exchange. Read now.

Questions tagged [locks]

Locks are a synchronization mechanism for enforcing limits on access to a resource.

Filter by
Sorted by
Tagged with
-3
votes
0answers
24 views

What behaviour should be expected of a lock with a wait_channel when it is destroyed with threads still waiting on it? [closed]

I'm trying a project implementing kernel primitives like locks and semaphores. Is it safe to assume that destroying a lock that had threads waiting on it should'nt be allowed?? what would be an ...
-1
votes
2answers
128 views

Race condition in Distributed Systems

We have a set of micro-services that are functionally dependent and have intertwined validation logic. e.g. consider 'Credit-Card' service and 'Loan' service. When user has a credit card then loan ...
16
votes
3answers
6k views

Is there a problem using A LOT of locks in a process?

I'm trying to build a C# application that sends notifications from the server to its users (a mobile app). Since each user can have its notifications collection changed by any thread, I have to lock ...
0
votes
1answer
71 views

Locking an item while waiting for human approval

I'm working on adding Approval workflows around our system which manages CRUD operations for our business item. Till now, I have been using an optimistic locking strategy to handle race conditions ...
1
vote
1answer
129 views

Message Queue with multiple consumers locking synchronous on a field

We have a system where multiple consumers get messages out of a queue (currently implemented with a database). The messages have an order field. All messages of one particular order should be ...
2
votes
2answers
117 views

Name of locking approach

I've seen this approach several times, both in async and multithreaded code. A counter is used to track asynchronous behavior or thread behavior - whenever a new action is started, the counter is ...
1
vote
2answers
56 views

Ensuring that Lock goes from Process A to Process B

Let's say process A has an exclusive lock on some shared resource. Is there a way to ensure that after it completes execution, Process B will definitely get the lock (as compared to say, process C ...
4
votes
4answers
1k views

How to check whether existing code base can deadlock

I'm improving/expanding a somewhat large code base, and I've introduced multithreading into it. But with the possibility of introducing code that could deadlock, which is nigh impossible to test for ...
3
votes
1answer
214 views

What is the typical best practice methodology around transferring money between two distinct systems?

I got this question on an interview the other day and was clueless to what the best practices are for solving it. It's the issue where you have to transfer money between two systems and want to avoid ...
0
votes
1answer
178 views

Robust locking mechanism between n service instances

I have a job that runs every hour. There can be n identical Node.js microservices running in a stack. The job must be executed only once per hour, though, so I've implemented the following locking ...
1
vote
1answer
73 views

Avoidance of Lost Update in DB2 for z/OS

I have a question concerning the "Uncommitted Read" Isolation Level under DB2 DBMS for z/OS. In this article https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/perf/src/tpc/...
3
votes
1answer
340 views

Why would CPython logging use a Lock for each handler rather than one Lock per Logger?

While developing my own logging library, I studied the source code of the standard logging module of CPython. One of its features is that handlers are thread-safe. One can write logs to a file from ...
3
votes
2answers
891 views

How to handle concurrent updates for the same record in a distributed system

I'm trying to figure out the best solution for the below. Any help would be great. So basically I have a service (that can be scaled horizontally), which listens on a queue. Every message received ...
1
vote
1answer
117 views

Inventory management with limited time hold strategy - How do I protect from bad actors?

Some sites, like theater ticket reservations, place a limited-time hold on the item , while the order is being processed. As soon as you select the seat and proceed to pay, Seat is reserved say for 10 ...
0
votes
2answers
304 views

Optimistic locking with business constraints [closed]

Consider this simple example: Tables (in a restaurant) can be booked for a period. Business constraint: No two table bookings for the same table may overlap in time. How might one prevent business ...
2
votes
1answer
174 views

Design lease mechanism of shared resource

I have a shared resource in a database that is used by clients C1 and C2. Before the resource is read by C1, C1 should mark the resource as leased so that C2 will know it is busy. C1 will do some ...
2
votes
2answers
217 views

Achieving very large real-time async writes on MySQL tables without locking them to reads

I am building a webapp (Angular frontend, Groovy/Spring/Hibernate/MySQL backend) that will allow users to compete against each other over certain activities. Each activity will have 1 winner and 1 ...
2
votes
1answer
552 views

Automatic blocking/unblocking of allocated seats in a movie ticketing system [closed]

I am trying to build a movie ticketing system. But I am not able to figure out how to solve the below use case: Let’s say there are 10 seats namely S1,S2,S3,S4… S10. Now let’s say that User1 had ...
1
vote
3answers
731 views

Is the Actor Model an alternative to transactions?

I know that transactions use locks. It is claimed that actors liberate us from shared state and locks make sure all crashes are the same as clean shutdowns: this can be done through practices such ...
3
votes
2answers
122 views

Problem related to optimistic locking performance

I'm designing a system that like the majority of social related application has posts, people can like the posts and comment on them. And also like the majority of the applications the users can see ...
4
votes
1answer
4k views

When is it safe to use Monitor (lock) with Task?

In a multi-threaded environment, we must consider concurrent access to writable resources. A common approach is to use Monitor or its shorthand form lock. Task is at a different abstraction level ...
4
votes
1answer
1k views

Race condition allowing multiple transactions; will locking on objects in a dictionary cause issues?

We have a MVC Web API that is called to write transactions for a specific amount, where the amount is debited or credited to a user's balance. This records the balance pre-transaction (PreAmount), the ...
1
vote
2answers
285 views

When interacting with an ArrayList over REST will a ReadWriteLock maintain consistency?

I have an ArrayList of objects that may be added/deleted/updated via REST calls. In order to prevent issues that may result from concurrent accesses, will a ReadWriteLock be appropriate, and efficient?...
4
votes
1answer
869 views

Monitor.Enter() when a thread is of highest priority

Background Okay, so let's say I have some high priority (ThreadPriority.Highest) thread t which needs to enter a critical region in order to consume some data. I will use the following code snippet ...
3
votes
1answer
860 views

Why many programs do not start if pidfile exists but no process is found?

I see a lot of programs that does write a pidfile, and check at boot its existence. And this is good. But many application does not start even if they check that the pidfile exists, yes, but no ...
8
votes
5answers
872 views

Composable concurrency in Java or any other programming language

While I was reading a research paper on concurrency named Software and the Concurrency Revolution (html version). I came across following lines: Unfortunately, although locks work, they pose ...
0
votes
1answer
152 views

Concurrent languages and non-concurrent dependencies [closed]

We had a bug caused by ruby workers (4 processes, 1 thread each) doing batching records using a legacy mongodb as the store. The race condition was around whether the batch was full or not; with one ...
4
votes
2answers
335 views

What is it called when threads are waiting but not deadlocked

The definition of a deadlock is when two or more threads cannot complete their execution because they are mutually blocked and waiting for something from the other thread(s). Is there a similar term ...
3
votes
1answer
526 views

Minimizing lock time (multithreaded app)

I have a web application written in C# which uses external dll written in C++. Communication between clients (web browsers) and a web application is done using SignalR. For communication between web ...
1
vote
0answers
41 views

Push instead of pull on a list that might change due to a command in addition to events? [closed]

I need to show a refreshable/searchable list of items and update/add-to it whenever an event is published. How do I make sure no events are lost while refreshing/searching is happening? Some sort of ...
41
votes
5answers
5k views

How is spinlock different from polling?

Is spinlock and polling the same thing? Wikipedia: a spinlock is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is ...
9
votes
2answers
5k views

Why is Akka good for concurrency?

I am new to Akka and actor framework - I am sure I am missing something obvious, please accept my apologies in advance. I keep reading that one of the main points to choose Akka is the way it manages ...
4
votes
0answers
303 views

How can I diagram data-locking scenarios?

There are many different types of charts and diagrams we use to formalize scenarios and study them tangibly -- activity diagrams, sequence diagrams, etc. I've been faced with a pretty complex locking ...
3
votes
1answer
91 views

Coordinate access to resource between workers

I have a database accessed by an several servers, let's call them workers. These workers take one item from the database, do some operations on it and then update it back into the database. The ...
3
votes
1answer
3k views

Does ReaderWriterLockSlim provide thread safety and speed efficiency (compared to a traditional lock) when using a List?

I have a list, to which I write once in every update Loop and then I spawn some tasks which create read that List and create a duplicate to manipulate that data. More or less it's List.ToList() call ...
9
votes
3answers
11k views

Reading file during write on linux

As I understand, when a file is being written, the process writing to the file obtains an exclusive lock. So other processes cannot access this file for read. With the above knowledge, I'm unable ...
27
votes
3answers
7k views

How much work should I place inside a lock statement?

I am a junior developer working on writing an update for software that receives data from a third-party solution, stores it in a database, and then conditions the data for use by another third-party ...
2
votes
3answers
3k views

Accessing shared data without blocking in TPL

I am writing a class that contains data. It exposes methods that allow to query the data, while the data is also being updated from an external source (web service, for example). All the methods ...
2
votes
2answers
2k views

Why don't we see (more) widespread adoption of lock-free dynamic memory allocators? [closed]

In a multithreaded programming environment, lock contention on the heap is often enough a performance bottleneck. Theoretically at least, the cream-of-the-crop solution for this problem is to have ...
0
votes
2answers
2k views

Scaling locks in high concurrency web apps [closed]

Our web application has a certain resource type that is shared accross multiple users, and may thus be read and written by anyone at anytime. We resorted to the usual suspects, database transactions ...
2
votes
2answers
699 views

Shared & exclusive locking

I need a "lock" that can be either shared or held exclusively, that will provide the following behavior for the following sequence of events: Process A: Requests and is granted a shared lock Process ...
5
votes
2answers
2k views

Alternative locking strategies

I'm having a problem with the design of my application, that neither optimistic nor pessimistic locking tends to solve. Here is a simplified/altered version of the problem that describes the situation....
2
votes
1answer
143 views

performance issues when synchronizing on an interned String

I want to lock a remote file with the string "ip + filename" using java. public boolean execCmd(String ip,String filename, String command) { String file = ip + filename; String lock = file....
6
votes
6answers
1k views

What is the actual reason that locks (sentinels) in OO are hard to reason about? [closed]

In this talk, Rich Hickey introduces Clojure. He gives an Ants demo and talks about his motivations for implementing a Software Transactional Memory (STM) system. His reasoning for STM is that "...
2
votes
1answer
542 views

Is this synchronization required in service onCreate method?

Below is a sample code i captured from android doc Per service instance onCreate will be called only once. Ref: here and here The synchronization and singleton doesn't make any sense to me in this ...
1
vote
1answer
173 views

Synchronized access to network industrial equipment

I have an industrial equipment which is controlled by a software. The software connects to it using sockets, and keeps the connection all the time alive, while from time to time sending commands to ...
3
votes
1answer
691 views

How do I handle online payment for items with single quantity? [duplicate]

I would like to implement a robust way to handle ecommerce payment for items with limited quantity, like for example exclusive paintings. Payment would ideally be accepted via PayPal and credit cards....
1
vote
1answer
166 views

Locking database records

What I have right now: A table with lot of records. About 200 users can select a record according to some rules based on the data in each record. There is a high chance that 2 or more users will ...
24
votes
4answers
7k views

What prevents a race condition on a lock?

I understand the basics of what data races are, and how locks/mutexes/semaphores help prevent them. But what happens if you have a "race condition" on the lock itself? For example, two different ...
1
vote
3answers
2k views

Is it possible to perform mutual exclusion of threads without OS support?

I suppose you could adapt distributed mutual exclusion algorithms (Ricart/Agrawala, etc), but aside from these more exotic approaches, are you required to use primitives provided by the OS in order to ...