- * Coordinate Halo exchange will be performed in \c
- * StreamNonLocal, and the \c communicateHaloCoordinates
- * method must be called before any subsequent operations that
- * access non-local parts of the coordinate buffer (such as
- * the non-local non-bonded kernels). It also must be called
- * after the local coordinates buffer operations (where the
- * coordinates are copied to the device and hence the \c
- * coordinatesReadyOnDeviceEvent is recorded). Force Halo exchange
- * will be performed in \c streamNonLocal and the \c
- * communicateHaloForces method must be called after the
- * non-local buffer operations, after the local force buffer
- * has been copied to the GPU (if CPU forces are present), and
- * before the local buffer operations. The force halo exchange
- * does not yet support virial steps.
+ * Coordinate Halo exchange will be performed in its own stream
+ * with appropriate event-based synchronization, and the \c
+ * communicateHaloCoordinates method must be called before any
+ * subsequent operations that access non-local parts of the
+ * coordinate buffer (such as the non-local non-bonded
+ * kernels). It also must be called after the local coordinates
+ * buffer operations (where the coordinates are copied to the
+ * device and hence the \c coordinatesReadyOnDeviceEvent is
+ * recorded). Force Halo exchange will also be performed in its
+ * own stream with appropriate event-based synchronization, and
+ * the \c communicateHaloForces method must be called after the
+ * non-local buffer operations, after the local force buffer has
+ * been copied to the GPU (if CPU forces are present), and before
+ * the local buffer operations. The force halo exchange does not
+ * yet support virial steps.