Skip to content

Commit 300fcbd

Browse files
Remove AllowThreads call causing performance hit
1 parent d0feb90 commit 300fcbd

File tree

2 files changed

+6
-24
lines changed

2 files changed

+6
-24
lines changed

src/runtime/Types/FieldObject.cs

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,12 @@ public static NewReference tp_descr_get(BorrowedReference ds, BorrowedReference
6464
// Fasterflect does not support constant fields
6565
if (info.IsLiteral && !info.IsInitOnly)
6666
{
67-
using (Py.AllowThreads())
68-
{
69-
result = info.GetValue(null);
70-
}
67+
result = info.GetValue(null);
7168
}
7269
else
7370
{
7471
var getter = self.GetMemberGetter(info.DeclaringType);
75-
using (Py.AllowThreads())
76-
{
77-
result = getter(info.DeclaringType);
78-
}
72+
result = getter(info.DeclaringType);
7973
}
8074

8175
return Converter.ToPython(result, info.FieldType);
@@ -99,20 +93,14 @@ public static NewReference tp_descr_get(BorrowedReference ds, BorrowedReference
9993
// Fasterflect does not support constant fields
10094
if (info.IsLiteral && !info.IsInitOnly)
10195
{
102-
using (Py.AllowThreads())
103-
{
104-
result = info.GetValue(co.inst);
105-
}
96+
result = info.GetValue(co.inst);
10697
}
10798
else
10899
{
109100
var type = co.inst.GetType();
110101
var getter = self.GetMemberGetter(type);
111102
var argument = self.IsValueType(type) ? co.inst.WrapIfValueType() : co.inst;
112-
using (Py.AllowThreads())
113-
{
114-
result = getter(argument);
115-
}
103+
result = getter(argument);
116104
}
117105

118106
return Converter.ToPython(result, info.FieldType);

src/runtime/Types/PropertyObject.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,7 @@ public static NewReference tp_descr_get(BorrowedReference ds, BorrowedReference
7777
try
7878
{
7979
var getterFunc = self.GetMemberGetter(info.DeclaringType);
80-
using (Py.AllowThreads())
81-
{
82-
result = getterFunc(info.DeclaringType);
83-
}
80+
result = getterFunc(info.DeclaringType);
8481
return Converter.ToPython(result, info.PropertyType);
8582
}
8683
catch (Exception e)
@@ -97,10 +94,7 @@ public static NewReference tp_descr_get(BorrowedReference ds, BorrowedReference
9794

9895
try
9996
{
100-
using (Py.AllowThreads())
101-
{
102-
result = getter.Invoke(co.inst, Array.Empty<object>());
103-
}
97+
result = getter.Invoke(co.inst, Array.Empty<object>());
10498
return Converter.ToPython(result, info.PropertyType);
10599
}
106100
catch (Exception e)

0 commit comments

Comments
 (0)