@@ -12,24 +12,22 @@ def __init__(
1212 iothub_connection_string ,
1313 eventhub_connection_string ,
1414 eventhub_consumer_group ,
15- event_loop = None ,
1615 executor = None ,
1716 ):
18- self ._event_loop = event_loop or asyncio .get_event_loop ()
1917 self ._executor = executor or concurrent .futures .ThreadPoolExecutor ()
2018 self ._inner_object = ServiceHelperSync (
2119 iothub_connection_string , eventhub_connection_string , eventhub_consumer_group
2220 )
2321
22+ async def _run_in_executor (self , func , * args ):
23+ loop = asyncio .get_running_loop ()
24+ return await loop .run_in_executor (self ._executor , func , * args )
25+
2426 def set_identity (self , device_id , module_id ):
2527 return self ._inner_object .set_identity (device_id , module_id )
2628
2729 async def set_desired_properties (self , desired_props ):
28- return await self ._event_loop .run_in_executor (
29- self ._executor ,
30- self ._inner_object .set_desired_properties ,
31- desired_props ,
32- )
30+ return await self ._run_in_executor (self ._inner_object .set_desired_properties , desired_props )
3331
3432 async def invoke_method (
3533 self ,
@@ -38,8 +36,7 @@ async def invoke_method(
3836 connect_timeout_in_seconds = None ,
3937 response_timeout_in_seconds = None ,
4038 ):
41- return await self ._event_loop .run_in_executor (
42- self ._executor ,
39+ return await self ._run_in_executor (
4340 self ._inner_object .invoke_method ,
4441 method_name ,
4542 payload ,
@@ -52,25 +49,21 @@ async def send_c2d(
5249 payload ,
5350 properties ,
5451 ):
55- return await self ._event_loop .run_in_executor (
56- self ._executor , self ._inner_object .send_c2d , payload , properties
57- )
52+ return await self ._run_in_executor (self ._inner_object .send_c2d , payload , properties )
5853
5954 async def wait_for_eventhub_arrival (self , message_id , timeout = 60 ):
60- return await self ._event_loop .run_in_executor (
61- self ._executor ,
55+ return await self ._run_in_executor (
6256 self ._inner_object .wait_for_eventhub_arrival ,
6357 message_id ,
6458 timeout ,
6559 )
6660
6761 async def get_next_reported_patch_arrival (self , block = True , timeout = 240 ):
68- return await self ._event_loop .run_in_executor (
69- self ._executor ,
62+ return await self ._run_in_executor (
7063 self ._inner_object .get_next_reported_patch_arrival ,
7164 block ,
7265 timeout ,
7366 )
7467
7568 async def shutdown (self ):
76- return await self ._event_loop . run_in_executor ( self . _executor , self ._inner_object .shutdown )
69+ return await self ._run_in_executor ( self ._inner_object .shutdown )
0 commit comments