locking

Semaphore problems in Java with the Dining Philosophers

Hello, I'm trying to learn the basic jist of a Semaphore in the Dining Philosopher problem. Right now, I have an array of class Chopstick, and each Chopstick has a semaphore with 1 available permit: public class Chopstick { Thread holder = null; private Semaphore lock = new Semaphore(1); public synchronized void take() thro...

Java: What, if anything, is locked by synchronized methods apart from the object they belong to?

Now, I'm not sure whether this is a stupid question, please bear with me if it is. Is the lock on an object "recursive", i. e. if two objects have references to a third object in their fields and a thread is running a synchronized method on one of the two, can any other thread access the third object? // a and b are some objects that i...

How do I implement "pessimistic locking" in an asp.net application?

I would like some advice from anyone experienced with implementing something like "pessimistic locking" in an asp.net application. This is the behavior I'm looking for: User A opens order #313 User B attempts to open order #313 but is told that User A has had the order opened exclusively for X minutes. Since I haven't implemented th...

Locking in SQL Server

I have 2 batch programs, 1 is a program that sends email and another one sends fax. They both access a table named QUEUE. In the email sender program, this is what happens in relation to QUEUE. For each record in QUEUE that satisfies criteria: Locks record 1 in QUEUE table: select 1 from QUEUE with (UPDLOCK) where id = 1 Process s...

Commiting only Specific Changes made inside a TRANSACTION which may ROLLBACK

This is a significant edit from the original question, making it more concise and covering the points raised by existing answers... Is it possible to have mulitple changes made to multiple tables, inside a single transaction, and rollback only some of the changes? In the TSQL below, I would NOT want any of the changes made by "myLogSP"...

Is there a global named reader/writer lock?

I have multiple asp.net web apps serving a set of files. Periodically, one will update the file before serving it, but it can't update the file if it is in use. I could solve this issue by using a named mutex where the name is the file path (replacing the invalid characters of course). I've used this in other situations, but you can see...

Should Locks and Mutexes in C# be used together

Wouldn't this be overkill and only one of these necessary? I've searched and found different posts about Mutual Exclusion and locks in C# here and here. Example: In our app, we have a function that spins off multiple reconnection threads and inside this thread we use a Mutex and a lock. Wouldn't lock block access to this section of code ...

How to handle promo code assignment in the Entity Framework without collisions?

Let's say I have a table of promo codes, and a table of contacts. Each contact can have 1 promo code, and each promo code can only be assigned to 1 contact. How would I employ an assignment program that would select a promo code from the table, and assign it to a contact, without having concurrency issues/collisions. Worst case scenar...

How to resolve Sybase table locks (VB6)?

I am not a great VB programmer, but I am tasked with maintaining/enhancing a VB6 desktop application that uses Sybase ASE as a back-end. This app has about 500 users. Recently, I added functionality to this application which performs an additional insert/update to a single row in the database, key field being transaction number and the...

How do I detect a Lock This Computer command from a WPF application?

Would prefer an answer in C#, .Net 3.5 using WPF (Windows Forms also okay) I have an application that is essentially a toolbar window or tray icon. It needs to detect if a user locks his/her workstation and walks away in order to update the person's status in a centralized system. I can detect a session switch or a logout easily enoug...

How does rsync behave for concurrent file access?

I'm using rsync to run backups of my machine twice a day and the ten to fifteen minutes when it searches my files for modifications, slowing down everything considerably, start getting on my nerves. Now I'd like to use the inotify interface of my kernel (I'm running Linux) to write a small background app that collects notifications abou...

Pessimistic versus Optimistic Concurrency (Locking versus Feedback)

I'm building an application with the following criteria: work items: items that need to be manually worked via the web by users (short one page form) Multiple users working 'work items' Each user has a queue of 'work items' There is a search that allows users to view 'work items' and assign 'work items' to their queues Users can take '...

lock statement not working when there is a loop inside it?

See this code: public class multiply { public Thread myThread; public int Counter { get; private set; } public string name { get; private set; } public void RunConsolePrint() { lock(this) { RunLockCode("lock"); } } private vo...

How to synchronize threads when polling for state changes with boost

In my application I want to be informed by events, that another application has been started or stopped. I have an existing API to the running application which cannot be changed to accomodate notification which would be the obvious solution. What I have is a function call in the API (isRunning), so I decided to make a polling thread wh...

multi-user application record locking - best method?

I'm developing a php / mysql application that handles multiple simultaneous users. I'm thinking of the best approach to take when it comes to locking / warning against records that are currently being viewed / edited. The scenario to avoid is two users viewing the record, one making a change, then the other doing likewise - with the po...

Platform independent file locking?

I'm running a very computationally intensive scientific job that spits out results every now and then. The job is basically to just simulate the same thing a whole bunch of times, so it's divided among several computers, which use different OSes. I'd like to direct the output from all these instances to the same file, since all the com...

Killing a process on exit

My project has an object that creates a process. It this object's Dispose function, it kills the process (or tries to). However, if the program crashes, it leaves the process running and doesn't clean up. Which causes the program to fail next time because it tries to launch the process again and can't get a lock on it. How can I make su...

Restricting a SELECT statement in SQL Server 2005

Hi, I have a situation where before doing a particular task I have to check whether a particular flag is set in DB and if it is not set then rest of the processing is done and the same flag is set. Now, in case of concurrent access from 2 different transactions, if first transaction check the flag and being not set it proceeds further. ...

Reference for proper handling of PID file on Unix

Where can I find a well-respected reference that details the proper handling of PID files on Unix? On Unix operating systems, it is common practice to “lock” a program (often a daemon) by use of a special lock file: the PID file. This is a file in a predictable location, often ‘/var/run/foo.pid’. The program is supposed to check when i...

confused about spin lock

I read spin lock code from here, especially this part inline void Enter(void) { int prev_s; do { prev_s = TestAndSet(&m_s, 0); if (m_s == 0 && prev_s == 1) { break; } // reluinquish current timeslice (can only // be used when OS available and // we do NOT wa...