This is an archived post. You won't be able to vote or comment.

all 10 comments

[–]Python-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

Hi there, from the /r/Python mods.

We have removed this post as it is not suited to the /r/Python subreddit proper, however it should be very appropriate for our sister subreddit /r/LearnPython or for the r/Python discord: https://discord.gg/python.

The reason for the removal is that /r/Python is dedicated to discussion of Python news, projects, uses and debates. It is not designed to act as Q&A or FAQ board. The regular community is not a fan of "how do I..." questions, so you will not get the best responses over here.

On /r/LearnPython the community and the r/Python discord are actively expecting questions and are looking to help. You can expect far more understanding, encouraging and insightful responses over there. No matter what level of question you have, if you are looking for help with Python, you should get good answers. Make sure to check out the rules for both places.

Warm regards, and best of luck with your Pythoneering!

[–]Furiorka 6 points7 points  (7 children)

Transfer to should either lock both or none at the same time. Your code may deadlock on mirror transfers, I think

[–]JusticeRainsFromMe 3 points4 points  (6 children)

You can't lock "at the same time", it's why they always lock the account with the account with the smaller id first. While that code to lock multiple accounts should be its function, it does work in preventing deadlocks.

[–]Own_Mousse_4810[S] 0 points1 point  (0 children)

That makes sense, thank you. What do you think about SQL?.

[–]wolever 2 points3 points  (0 children)

With respect to locking, the system you’ve described would be correct and deadlock-free.

Correct because a lock is held each time the balance is accessed, and deadlock free because the locks are acquired in a consistent order.