// specialized WrapRelease for NativeEvents public static bool WrapRelease(System.IntPtr o, MSyncVarOp mop, ReleaseOp ro, String instrMethod) { return(Helper.SimpleWrap <bool>( delegate(ClrSyncManager manager) { manager.SetMethodInfo(instrMethod); manager.SyncVarAccess(manager.GetSyncVarFromNativeHandle((System.IntPtr)o), mop); bool ret; try { ret = ro(o); } catch (Exception e) { manager.CommitSyncVarAccess(); throw e; }; manager.CommitSyncVarAccess(); return ret; }, delegate() { return ro(o); })); }
public static bool WrapRelease(object o, MSyncVarOp mop, ReleaseOp ro, String instrMethod) { return(Helper.SimpleWrap <bool>( delegate(ClrSyncManager manager) { manager.SetMethodInfo(instrMethod); manager.SyncVarAccess(o, mop); bool ret; try { ret = ro(o); } catch (Exception e) { manager.CommitSyncVarAccess(); throw e; }; manager.CommitSyncVarAccess(); return ret; }, delegate() { return ro(o); })); }