40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// File: DeliveryHandle.cs
|
||
|
//
|
||
|
// Note: An indirection mechanism used by EndpointCore to abstract the
|
||
|
// Delivery mechanism used to notify the another endpoint of a new
|
||
|
// message and potentially marshall and copy the message to another
|
||
|
// Domain.
|
||
|
//
|
||
|
|
||
|
using System;
|
||
|
using System.Runtime.CompilerServices;
|
||
|
using System.Threading;
|
||
|
using Microsoft.Singularity;
|
||
|
using Microsoft.Singularity.Memory;
|
||
|
|
||
|
namespace Microsoft.Singularity.V1.Services
|
||
|
{
|
||
|
using DeliveryHandleImp = Microsoft.Singularity.Channels.DeliveryHandle;
|
||
|
|
||
|
[CLSCompliant(false)]
|
||
|
public struct DeliveryHandle
|
||
|
{
|
||
|
public readonly UIntPtr id;
|
||
|
|
||
|
[ExternalEntryPoint]
|
||
|
public static unsafe void Dispose(ref DeliveryHandle handle)
|
||
|
{
|
||
|
fixed (DeliveryHandle* h = &handle) {
|
||
|
DeliveryHandleImp* himp = (DeliveryHandleImp*) h;
|
||
|
DeliveryHandleImp.Dispose(Thread.CurrentProcess, *himp);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|