  This paper addresses the concurrency issues affecting Behavior Trees (BTs), a
popular tool to model the behaviors of autonomous agents in the video game and
the robotics industry.
  BT designers can easily build complex behaviors composing simpler ones, which
represents a key advantage of BTs. The parallel composition of BTs expresses a
way to combine concurrent behaviors that has high potential, since composing
pre-existing BTs in parallel results easier than composing in parallel
classical control architectures, as finite state machines or teleo-reactive
programs. However, BT designers rarely use such composition due to the
underlying concurrency problems similar to the ones faced in concurrent
programming. As a result, the parallel composition, despite its potential,
finds application only in the composition of simple behaviors or where the
designer can guarantee the absence of conflicts by design.
  In this paper, we define two new BT nodes to tackle the concurrency problems
in BTs and we show how to exploit them to create predictable behaviors. In
addition, we introduce measures to assess execution performance and show how
different design choices affect them. We validate our approach in both
simulations and the real world. Simulated experiments provide statistically
significant data, whereas real-world experiments show the applicability of our
method on real robots. We provided an open-source implementation of the novel
BT formulation and published all the source code to reproduce the numerical
examples and experiments.
