[Darwin] Adopt XAMCORE_4_0 changes in .NET. (#13965)

This commit is contained in:
Rolf Bjarne Kvinge 2022-01-31 16:51:12 +01:00 коммит произвёл GitHub
Родитель adcfcfbe83
Коммит 62b3eab06d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 24 добавлений и 4 удалений

Просмотреть файл

@ -50,7 +50,7 @@ namespace Darwin {
public IntPtr /* uintptr_tr */ Ident; public IntPtr /* uintptr_tr */ Ident;
public EventFilter /* int16_t */ Filter; public EventFilter /* int16_t */ Filter;
public EventFlags /* uint16_t */ Flags; public EventFlags /* uint16_t */ Flags;
#if XAMCORE_4_0 #if NET
public FilterFlags /* uint32_t */ FilterFlags; public FilterFlags /* uint32_t */ FilterFlags;
#else #else
public uint /* uint32_t */ FilterFlags; public uint /* uint32_t */ FilterFlags;
@ -247,7 +247,7 @@ namespace Darwin {
return rv; return rv;
} }
#if !XAMCORE_4_0 #if !NET
[Obsolete ("Use any of the overloads that return an int to get how many events were returned from kevent.")] [Obsolete ("Use any of the overloads that return an int to get how many events were returned from kevent.")]
public bool KEvent (KernelEvent [] changeList, int nChanges, KernelEvent [] eventList, int nEvents, ref TimeSpec timeOut) public bool KEvent (KernelEvent [] changeList, int nChanges, KernelEvent [] eventList, int nEvents, ref TimeSpec timeOut)
{ {
@ -291,7 +291,7 @@ namespace Darwin {
} }
#endif #endif
#if XAMCORE_4_0 #if NET
public int KEvent (KernelEvent [] changeList, KernelEvent [] eventList) public int KEvent (KernelEvent [] changeList, KernelEvent [] eventList)
#else #else
[Obsolete ("Use any of the overloads that return an int to get how many events were returned from kevent.")] [Obsolete ("Use any of the overloads that return an int to get how many events were returned from kevent.")]
@ -301,7 +301,7 @@ namespace Darwin {
unsafe { unsafe {
fixed (KernelEvent *cp = &changeList [0]) fixed (KernelEvent *cp = &changeList [0])
fixed (KernelEvent *ep = &eventList [0]) fixed (KernelEvent *ep = &eventList [0])
#if XAMCORE_4_0 #if NET
return kevent (handle, cp, changeList != null ? changeList.Length : 0, ep, eventList != null ? eventList.Length : 0, IntPtr.Zero); return kevent (handle, cp, changeList != null ? changeList.Length : 0, ep, eventList != null ? eventList.Length : 0, IntPtr.Zero);
#else #else
return kevent (handle, cp, changeList != null ? changeList.Length : 0, ep, eventList != null ? eventList.Length : 0, IntPtr.Zero) != -1; return kevent (handle, cp, changeList != null ? changeList.Length : 0, ep, eventList != null ? eventList.Length : 0, IntPtr.Zero) != -1;

Просмотреть файл

@ -20,7 +20,11 @@ namespace apitest
Ident = (IntPtr) process.Id, Ident = (IntPtr) process.Id,
Filter = EventFilter.Proc, Filter = EventFilter.Proc,
Flags = EventFlags.Add, Flags = EventFlags.Add,
#if NET
FilterFlags = FilterFlags.ProcExit,
#else
FilterFlags = (uint) (FilterFlags.ProcExit), FilterFlags = (uint) (FilterFlags.ProcExit),
#endif
} }
}; };
} }
@ -33,7 +37,11 @@ namespace apitest
using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) { using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) {
using (var kqueue = new KernelQueue ()) { using (var kqueue = new KernelQueue ()) {
var events = CreateEvents (sleep); var events = CreateEvents (sleep);
#if NET
Assert.That (kqueue.KEvent (events, events), Is.GreaterThan (0), "kevent");
#else
Assert.IsTrue (kqueue.KEvent (events, events), "kevent"); Assert.IsTrue (kqueue.KEvent (events, events), "kevent");
#endif
} }
} }
@ -81,7 +89,11 @@ namespace apitest
{ {
Seconds = 5, Seconds = 5,
}; };
#if NET
Assert.That (kqueue.KEvent (events, events.Length, events, events.Length, ts), Is.GreaterThan (0), "kevent");
#else
Assert.IsTrue (kqueue.KEvent (events, events.Length, events, events.Length, ref ts), "kevent"); Assert.IsTrue (kqueue.KEvent (events, events.Length, events, events.Length, ref ts), "kevent");
#endif
} }
} }
@ -89,11 +101,15 @@ namespace apitest
using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) { using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) {
using (var kqueue = new KernelQueue ()) { using (var kqueue = new KernelQueue ()) {
var events = CreateEvents (sleep); var events = CreateEvents (sleep);
#if NET
Assert.That (kqueue.KEvent (events, events, TimeSpan.FromSeconds (5)), Is.GreaterThan (0), "kevent");
#else
TimeSpec ts = new TimeSpec TimeSpec ts = new TimeSpec
{ {
Seconds = 5, Seconds = 5,
}; };
Assert.IsTrue (kqueue.KEvent (events, events, ref ts), "kevent"); Assert.IsTrue (kqueue.KEvent (events, events, ref ts), "kevent");
#endif
} }
} }
@ -101,7 +117,11 @@ namespace apitest
using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) { using (var sleep = Process.Start ("/bin/sleep", sleep_duration)) {
using (var kqueue = new KernelQueue ()) { using (var kqueue = new KernelQueue ()) {
var events = CreateEvents (sleep); var events = CreateEvents (sleep);
#if NET
Assert.That (kqueue.KEvent (events, events.Length, events, events.Length), Is.GreaterThan (0), "kevent");
#else
Assert.IsTrue (kqueue.KEvent (events, events.Length, events, events.Length), "kevent"); Assert.IsTrue (kqueue.KEvent (events, events.Length, events, events.Length), "kevent");
#endif
} }
} }
} }