Skip to content
Snippets Groups Projects
Commit d6861e58 authored by Martin Teichmann's avatar Martin Teichmann
Browse files

allocate mailbox lock early

parent 74ae1989
No related branches found
No related tags found
No related merge requests found
...@@ -572,13 +572,12 @@ class Terminal: ...@@ -572,13 +572,12 @@ class Terminal:
assert relative is not None or absolute is not None assert relative is not None or absolute is not None
if absolute is None: if absolute is None:
absolute = await self.ec.find_free_address() absolute = await self.ec.find_free_address()
self.mbx_lock = self.ec.get_mbx_lock(absolute)
if relative is not None: if relative is not None:
await self.ec.roundtrip(ECCmd.APWR, relative, 0x10, "H", absolute) await self.ec.roundtrip(ECCmd.APWR, relative, 0x10, "H", absolute)
self.position = absolute self.position = absolute
self.mbx_lock = self.ec.get_mbx_lock(self.position)
await self.set_state(0x11) await self.to_operational(MachineState.INIT)
await self.set_state(1)
fmmu_no, = await self.read(4, "B") fmmu_no, = await self.read(4, "B")
self.fmmu_used = [None] * fmmu_no self.fmmu_used = [None] * fmmu_no
...@@ -604,6 +603,7 @@ class Terminal: ...@@ -604,6 +603,7 @@ class Terminal:
return await self.initialize(relative=relative) return await self.initialize(relative=relative)
else: else:
self.position = absolute self.position = absolute
self.mbx_lock = self.ec.get_mbx_lock(self.position)
state, *_ = await self.get_state() state, *_ = await self.get_state()
if state is MachineState.INIT: if state is MachineState.INIT:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment