I want to raise error when a user tries to delete an object when some other users are active in update_object view. I feel some sort of mutex-like locking mechanism is needed for that. Do you have any suggestions?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
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.
So, there are a handful of ways to do what you’re asking. But a good number of them are not going to be implementation independent: you could use locks or rlocks, but they will really only work on 100% threaded servers and probably not at all in a fork/pre-fork implementation.
That more or less means the locking implementation will be up to you. Two ideas:
.lockfile on your file systemlockedproperty in your model classIn both cases, you have to manually set the lock object on update and check against it on delete. Try something like:
This is indeed a clumsy implementation that you’ll have to clean up. You may not be comfortable with the fact that a different critical region has been created, but I don’t see how you’ll do much better if your using the database as an implementation without making the implementation much more complicated. (One option would be to make the locks entirely separate objects. Then you could update them after the save() method is called. But I don’t feel like coding that up.) If you really want to use a file-based locking system, that would also solve the problem. If you’re database-hit-paranoid, this might be the thing for you. Something like:
Anyway, maybe there’s some way to mix and match these suggestions to your taste?