As far as I can tell you are starting a single sumo simulation and are
trying to use it from multiple threads.
The traci operations are not thread safe. This is what works
- starting a different sumo simulation for each thread and using them as
described in
https://sumo.dlr.de/docs/TraCI/Interfacing_TraCI_from_Python.html#controlling_parallel_simulations_from_the_same_traci_script
- using your own synchronization so that only one thread is talking to sumo
at the same time

regards,
Jakob

Am So., 25. Apr. 2021 um 22:46 Uhr schrieb Marcelo Andrade Rodrigues D
Almeida <[email protected]>:

> Hi everyone
>
> I'm having trouble using multiple simulations in different threads
>
> The difference can be perceived by changing max_workers to 1 and 2.
> "        with ThreadPoolExecutor(max_workers=len(possible_actions)) as
> executor:" (planning_only_agent.py, line 100)
>
> [See attached example (a very simplified version of what I'm actually
> using)]
>
> With max_workers=1, it works just fine.
>
> With 2, it gives all sort of errors:
>
> "bad char in struct format"
> "unpack requires a buffer of [x] bytes"
> A lot of times it just hangs
> "Received answer 0 for command 211."
>
>
> The easiest way I found to reproduce is to add a breakpoint into a
> subscribe call and hit continue several times. It is likely to crash when
> threads stop at the same command, although it occurs eventually without
> breaking points.
>
> Tested in version 1.9.0 (specifically v1_9_0+0210-fa53508669)
>
> Thank you in advance
>
>
> Sincerely,
>
> Marcelo d'Almeida
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to