Most of the old execution code has been removed from ExecuteAsynchronously
and WaitForIt
and has been split up into DoExecuteTransaction()
, ProcessCall
, ProcessTerminated
, and ProcessRetrieveResponse
.
ExecuteAsynchronously
now only start a background thread running DoExecuteTransaction
and WaitForIt
joins the background thread until it terminates.
Because we deal with multiple thread now, this MR also needed to introduce a mutex/lock system. We have a special non-public macro for this (TRANSACTION_SYNCRONIZED_BLOCK
).
Pipelines should be enough. If we encounter problems in the dependent clients (julia, octave) afterwards we will see what we need to do then.
Please, prepare your MR for a review. Be sure to write a summary and a focus and create gitlab comments for the reviewer. They should guide the reviewer through the changes, explain your changes and also point out open questions. For further good practices have a look at our review guidelines
For further good practices have a look at our review guidelines.