dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/engine cvm_inline.c,1.13,1.14 lib_threa


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/engine cvm_inline.c,1.13,1.14 lib_thread.c,1.12,1.13
Date: Sun, 29 Jun 2003 17:38:14 -0400

Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv12112/engine

Modified Files:
        cvm_inline.c lib_thread.c 
Log Message:


engine/lib_thread.c: Fix argument exception instead of SyncLockException thrown.

* engine/cvm_inline.c: Monitor.Enter and Monitor.Exit now
properly save/restore the stack state.  Fixes case where
exceptions not always thrown.


Index: cvm_inline.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/cvm_inline.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** cvm_inline.c        26 Jun 2003 03:39:25 -0000      1.13
--- cvm_inline.c        29 Jun 2003 21:38:12 -0000      1.14
***************
*** 352,357 ****
        /* TODO: Actually make it fully inline :) */
        
!       _IL_Monitor_Enter(thread, (ILObject *)stacktop[-1].ptrValue);
!       
        MODIFY_PC_AND_STACK(CVMP_LEN_NONE, -1);
  }
--- 352,359 ----
        /* TODO: Actually make it fully inline :) */
        
!       COPY_STATE_TO_THREAD();
!       _IL_Monitor_Enter(thread, (ILObject *)stacktop[-1].ptrValue);   
!       RESTORE_STATE_FROM_THREAD();
! 
        MODIFY_PC_AND_STACK(CVMP_LEN_NONE, -1);
  }
***************
*** 384,388 ****
        /* TODO: Actually make it fully inline :) */
        
!       _IL_Monitor_Exit(thread, (ILObject *)stacktop[-1].ptrValue);
  
        MODIFY_PC_AND_STACK(CVMP_LEN_NONE, -1);
--- 386,392 ----
        /* TODO: Actually make it fully inline :) */
        
!       COPY_STATE_TO_THREAD();
!       _IL_Monitor_Exit(thread, (ILObject *)stacktop[-1].ptrValue);    
!       RESTORE_STATE_FROM_THREAD();
  
        MODIFY_PC_AND_STACK(CVMP_LEN_NONE, -1);

Index: lib_thread.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/lib_thread.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** lib_thread.c        26 Jun 2003 22:23:35 -0000      1.12
--- lib_thread.c        29 Jun 2003 21:38:12 -0000      1.13
***************
*** 287,291 ****
                        (
                        thread,                         
!                       "System.ArgumentException",     
                        "Exception_ThreadNeedsLock"
                        );
--- 287,291 ----
                        (
                        thread,                         
!                       "System.Threading.SynchronizationLockException",        
                        "Exception_ThreadNeedsLock"
                        );





reply via email to

[Prev in Thread] Current Thread [Next in Thread]