[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/engine heap.c,1.13,1.14
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/engine heap.c,1.13,1.14 |
Date: |
Mon, 14 Apr 2003 03:42:24 -0400 |
Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv12539/engine
Modified Files:
heap.c
Log Message:
InitializeClass: disable finalizers while laying out the class,
to prevent recursive locks.
Index: heap.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/heap.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** heap.c 19 Jun 2002 01:23:00 -0000 1.13
--- heap.c 14 Apr 2003 07:42:21 -0000 1.14
***************
*** 37,42 ****
}
! /* Acquire the metadata write lock */
IL_METADATA_WRLOCK(thread);
/* Lay out the class's fields. This will check for layout
--- 37,43 ----
}
! /* Acquire the metadata write lock and disable finalizers */
IL_METADATA_WRLOCK(thread);
+ ILGCDisableFinalizers();
/* Lay out the class's fields. This will check for layout
***************
*** 45,49 ****
--- 46,52 ----
{
/* Throw a "TypeInitializationException" */
+ ILGCEnableFinalizers();
IL_METADATA_UNLOCK(thread);
+ ILGCInvokeFinalizers();
thread->thrownException = _ILSystemException
(thread, "System.TypeInitializationException");
***************
*** 51,56 ****
}
! /* The class has been initialized */
IL_METADATA_UNLOCK(thread);
return 1;
}
--- 54,61 ----
}
! /* Re-enable finalizers and unlock the metadata write lock */
! ILGCEnableFinalizers();
IL_METADATA_UNLOCK(thread);
+ ILGCInvokeFinalizers();
return 1;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/engine heap.c,1.13,1.14,
Rhys Weatherley <address@hidden> <=