mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			481 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			481 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Event loop mixins."""
 | 
						|
 | 
						|
import threading
 | 
						|
from . import events
 | 
						|
 | 
						|
_global_lock = threading.Lock()
 | 
						|
 | 
						|
 | 
						|
class _LoopBoundMixin:
 | 
						|
    _loop = None
 | 
						|
 | 
						|
    def _get_loop(self):
 | 
						|
        loop = events._get_running_loop()
 | 
						|
 | 
						|
        if self._loop is None:
 | 
						|
            with _global_lock:
 | 
						|
                if self._loop is None:
 | 
						|
                    self._loop = loop
 | 
						|
        if loop is not self._loop:
 | 
						|
            raise RuntimeError(f'{self!r} is bound to a different event loop')
 | 
						|
        return loop
 |