From f235244d54d8aef736fd6180bee0d8293f1b2a81 Mon Sep 17 00:00:00 2001 From: James Watson Date: Mon, 21 Jan 2019 16:38:29 +0000 Subject: [PATCH] Fix aeron directory resolution on OSX --- src/Adaptive.Aeron/Aeron.cs | 25 +++++++++++++++++++++++-- src/Adaptive.Agrona/IoUtil.cs | 14 -------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/Adaptive.Aeron/Aeron.cs b/src/Adaptive.Aeron/Aeron.cs index 66b14431..a58d01cd 100644 --- a/src/Adaptive.Aeron/Aeron.cs +++ b/src/Adaptive.Aeron/Aeron.cs @@ -411,6 +411,28 @@ public class Context : IDisposable private UnsafeBuffer _countersValuesBuffer; private IThreadFactory _threadFactory = new DefaultThreadFactory(); + + static Context() + { + string baseDirName = null; + + if (Environment.OSVersion.Platform == PlatformID.Unix) + { + if (Directory.Exists(@"/dev/shm")) + { + baseDirName = "/dev/shm/aeron"; + } + } + + if (null == baseDirName) + { + baseDirName = Path.Combine(Path.GetTempPath(), "aeron"); + } + + AERON_DIR_PROP_DEFAULT = baseDirName + '-' + Environment.UserName; + + } + /// /// The top level Aeron directory used for communication between a Media Driver and client. /// @@ -419,8 +441,7 @@ public class Context : IDisposable /// /// The value of the top level Aeron directory unless overridden by /// - public static readonly string AERON_DIR_PROP_DEFAULT = - Path.Combine(IoUtil.TmpDirName(), "aeron-" + Environment.UserName); + public static readonly string AERON_DIR_PROP_DEFAULT; /// /// Media type used for IPC shared memory from to channels. diff --git a/src/Adaptive.Agrona/IoUtil.cs b/src/Adaptive.Agrona/IoUtil.cs index 175430e2..c6d1a07f 100644 --- a/src/Adaptive.Agrona/IoUtil.cs +++ b/src/Adaptive.Agrona/IoUtil.cs @@ -196,20 +196,6 @@ public static void CheckFileExists(string path) } } - /// - /// Return the system property for java.io.tmpdir ensuring a '/' is at the end. - /// - /// tmp directory for the runtime - public static string TmpDirName() - { - if (Environment.OSVersion.Platform == PlatformID.Unix) - { - return @"/dev/shm"; - } - - return Path.GetTempPath(); - } - public static void Delete(DirectoryInfo directory, bool b) { if (directory.Exists)