mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-10-26 05:31:27 +03:00 
			
		
		
		
	Update singleton_thread_locals.py
This commit is contained in:
		
							parent
							
								
									4e6fc276a9
								
							
						
					
					
						commit
						fda3083280
					
				|  | @ -6,21 +6,21 @@ import queue | |||
| import dependency_injector.providers as providers | ||||
| 
 | ||||
| 
 | ||||
| def example(example_object, queue): | ||||
| def example(example_object, queue_object): | ||||
|     """Put provided object in the provided queue.""" | ||||
|     queue.put(example_object) | ||||
|     queue_object.put(example_object) | ||||
| 
 | ||||
| 
 | ||||
| # Create thread-local singleton provider for some object (main thread): | ||||
| thread_local_object = providers.ThreadLocalSingleton(object) | ||||
| 
 | ||||
| # Create singleton provider for thread-safe queue: | ||||
| queue = providers.ThreadSafeSingleton(queue.Queue) | ||||
| queue_factory = providers.ThreadSafeSingleton(queue.Queue) | ||||
| 
 | ||||
| # Create callable provider for example(), inject dependencies: | ||||
| example = providers.DelegatedCallable(example, | ||||
|                                       example_object=thread_local_object, | ||||
|                                       queue=queue) | ||||
|                                       queue_object=queue_factory) | ||||
| 
 | ||||
| # Create factory provider for threads that are targeted to execute example(): | ||||
| thread_factory = providers.Factory(threading.Thread, | ||||
|  | @ -43,8 +43,8 @@ if __name__ == '__main__': | |||
|     # Making some asserts (main thread): | ||||
|     all_objects = set() | ||||
| 
 | ||||
|     while not queue().empty(): | ||||
|         all_objects.add(queue().get()) | ||||
|     while not queue_factory().empty(): | ||||
|         all_objects.add(queue_factory().get()) | ||||
| 
 | ||||
|     assert len(all_objects) == len(threads) | ||||
|     # Queue contains same number of objects as number of threads where | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user