3

The question basically boils down to whether the following is safe, assuming there is a new SQLAlchemy session s being created everytime this function is invoked:

async def func(s: Session):
  loop = asyncio.get_running_loop()
  await loop.run_in_executor(None, some_func, s)
  await loop.run_in_executor(None, some_other_func, s)
  ...

I'm thinking that it is safe because even though the session is used in (potentially) two different threads in the two run_in_executor calls, those two calls are not concurrent, since the second call won't be executed until the first one completes. This means the session is not accessed concurrently. Am I right in thinking that?

1 Answer 1

2

Got a response from Mike Bayer himself (thanks again for the fast response!): https://github.com/sqlalchemy/sqlalchemy/issues/5828. TLDR is that yes it is safe as long as the access is not concurrent.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.