@@ -38,11 +38,10 @@ public class Get : Source<PyObject>
3838 /// </returns>
3939 public override IObservable < PyObject > Generate ( )
4040 {
41- return RuntimeManager . RuntimeSource . SelectMany ( runtime =>
42- {
43- var module = Module ?? runtime . MainModule ;
44- return Observable . Return ( module . Get ( VariableName ) ) ;
45- } ) ;
41+ return RuntimeManager . RuntimeSource
42+ . GetModuleOrDefaultAsync ( Module )
43+ . ObserveOnGIL ( )
44+ . Select ( module => module . Get ( VariableName ) ) ;
4645 }
4746
4847 /// <summary>
@@ -61,17 +60,9 @@ public override IObservable<PyObject> Generate()
6160 /// </returns>
6261 public IObservable < PyObject > Generate < TSource > ( IObservable < TSource > source )
6362 {
64- return RuntimeManager . RuntimeSource . SelectMany ( runtime =>
65- {
66- return source . Select ( _ =>
67- {
68- using ( Py . GIL ( ) )
69- {
70- var module = Module ?? runtime . MainModule ;
71- return module . Get ( VariableName ) ;
72- }
73- } ) ;
74- } ) ;
63+ return RuntimeManager . RuntimeSource
64+ . GetModuleOrDefaultAsync ( Module )
65+ . SelectMany ( module => source . Select ( _ => module . Get ( VariableName ) ) ) ;
7566 }
7667
7768 /// <summary>
@@ -89,13 +80,7 @@ public IObservable<PyObject> Generate<TSource>(IObservable<TSource> source)
8980 /// </returns>
9081 public IObservable < PyObject > Process ( IObservable < PyModule > source )
9182 {
92- return source . Select ( module =>
93- {
94- using ( Py . GIL ( ) )
95- {
96- return module . Get ( VariableName ) ;
97- }
98- } ) ;
83+ return source . Select ( module => module . Get ( VariableName ) ) ;
9984 }
10085
10186 /// <summary>
@@ -112,13 +97,7 @@ public IObservable<PyObject> Process(IObservable<PyModule> source)
11297 /// </returns>
11398 public IObservable < PyObject > Process ( IObservable < RuntimeManager > source )
11499 {
115- return source . Select ( runtime =>
116- {
117- using ( Py . GIL ( ) )
118- {
119- return runtime . MainModule . Get ( VariableName ) ;
120- }
121- } ) ;
100+ return source . Select ( runtime => runtime . MainModule . Get ( VariableName ) ) ;
122101 }
123102 }
124103}
0 commit comments