@@ -146,10 +146,13 @@ public sealed partial class PythonContext : LanguageContext {
146146 private int _tracebackListenersCount ;
147147
148148 internal FunctionCode . CodeList _allCodes ;
149- internal readonly object _codeCleanupLock = new object ( ) , _codeUpdateLock = new object ( ) ;
149+ internal readonly object _codeCleanupLock = new object ( ) ;
150+ internal readonly object _codeUpdateLock = new object ( ) ;
150151 internal int _codeCount , _nextCodeCleanup = 200 ;
151152 private int _recursionLimit ;
152153
154+ private readonly object _indexBindersLock = new object ( ) ; // https://github.com/IronLanguages/ironpython3/issues/1596
155+
153156 internal readonly List < FunctionStack > _mainThreadFunctionStack ;
154157 private CallSite < Func < CallSite , CodeContext , object , object > > _callSite0LightEh ;
155158 private List < WeakReference > _weakExtensionMethodSets ;
@@ -3579,7 +3582,7 @@ ref _binaryBinders[(int)operation],
35793582 Interlocked . CompareExchange ( ref _getIndexBinders , new PythonGetIndexBinder [ argCount + 1 ] , null ) ;
35803583 }
35813584
3582- lock ( this ) {
3585+ lock ( _indexBindersLock ) {
35833586 if ( _getIndexBinders . Length <= argCount ) {
35843587 Array . Resize ( ref _getIndexBinders , argCount + 1 ) ;
35853588 }
@@ -3597,7 +3600,7 @@ ref _binaryBinders[(int)operation],
35973600 Interlocked . CompareExchange ( ref _setIndexBinders , new PythonSetIndexBinder [ argCount + 1 ] , null ) ;
35983601 }
35993602
3600- lock ( this ) {
3603+ lock ( _indexBindersLock ) {
36013604 if ( _setIndexBinders . Length <= argCount ) {
36023605 Array . Resize ( ref _setIndexBinders , argCount + 1 ) ;
36033606 }
@@ -3615,7 +3618,7 @@ ref _binaryBinders[(int)operation],
36153618 Interlocked . CompareExchange ( ref _deleteIndexBinders , new PythonDeleteIndexBinder [ argCount + 1 ] , null ) ;
36163619 }
36173620
3618- lock ( this ) {
3621+ lock ( _indexBindersLock ) {
36193622 if ( _deleteIndexBinders . Length <= argCount ) {
36203623 Array . Resize ( ref _deleteIndexBinders , argCount + 1 ) ;
36213624 }
0 commit comments