Explain EventWriter limits concurrency (#11063)
Co-authored-by: François <mockersf@gmail.com> Co-authored-by: James Liu <contact@jamessliu.com>
This commit is contained in:
		
							parent
							
								
									dc698f0174
								
							
						
					
					
						commit
						c6b32a2140
					
				| @ -407,6 +407,11 @@ impl<E: Event> DerefMut for EventSequence<E> { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// Reads events of type `T` in order and tracks which events have already been read.
 | /// Reads events of type `T` in order and tracks which events have already been read.
 | ||||||
|  | ///
 | ||||||
|  | /// # Concurrency
 | ||||||
|  | ///
 | ||||||
|  | /// Unlike [`EventWriter<T>`], systems with `EventReader<T>` param can be executed concurrently
 | ||||||
|  | /// (but not concurrently with `EventWriter<T>` systems for the same event type).
 | ||||||
| #[derive(SystemParam, Debug)] | #[derive(SystemParam, Debug)] | ||||||
| pub struct EventReader<'w, 's, E: Event> { | pub struct EventReader<'w, 's, E: Event> { | ||||||
|     reader: Local<'s, ManualEventReader<E>>, |     reader: Local<'s, ManualEventReader<E>>, | ||||||
| @ -484,7 +489,12 @@ impl<'w, 's, E: Event> EventReader<'w, 's, E> { | |||||||
| /// # bevy_ecs::system::assert_is_system(my_system);
 | /// # bevy_ecs::system::assert_is_system(my_system);
 | ||||||
| /// ```
 | /// ```
 | ||||||
| ///
 | ///
 | ||||||
| /// # Limitations
 | /// # Concurrency
 | ||||||
|  | ///
 | ||||||
|  | /// `EventWriter` param has [`ResMut<Events<T>>`](Events) inside. So two systems declaring `EventWriter<T>` params
 | ||||||
|  | /// for the same event type won't be executed concurrently.
 | ||||||
|  | ///
 | ||||||
|  | /// # Untyped events
 | ||||||
| ///
 | ///
 | ||||||
| /// `EventWriter` can only send events of one specific type, which must be known at compile-time.
 | /// `EventWriter` can only send events of one specific type, which must be known at compile-time.
 | ||||||
| /// This is not a problem most of the time, but you may find a situation where you cannot know
 | /// This is not a problem most of the time, but you may find a situation where you cannot know
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Stepan Koltsov
						Stepan Koltsov