Class LinuxOperatingSystemJNA

All Implemented Interfaces:
OperatingSystem

@ThreadSafe public class LinuxOperatingSystemJNA extends LinuxOperatingSystem
JNA-based Linux operating system implementation. Extends LinuxOperatingSystem, providing JNA implementations of process/thread ID queries and thread count via sysinfo.
  • Field Details

    • HAS_UDEV

      public static final boolean HAS_UDEV
      This static field identifies if the udev library can be loaded.
    • HAS_GETTID

      public static final boolean HAS_GETTID
      This static field identifies if the gettid function is in the c library.
    • HAS_SYSCALL_GETTID

      public static final boolean HAS_SYSCALL_GETTID
      This static field identifies if the syscall for gettid returns sane results.
  • Constructor Details

    • LinuxOperatingSystemJNA

      public LinuxOperatingSystemJNA()
  • Method Details

    • getFileSystem

      public FileSystem getFileSystem()
      Description copied from interface: OperatingSystem
      Instantiates a FileSystem object.
      Returns:
      A FileSystem object.
    • getNetworkParams

      public NetworkParams getNetworkParams()
      Description copied from interface: OperatingSystem
      Instantiates a NetworkParams object.
      Returns:
      A NetworkParams object.
    • getProcess

      public OSProcess getProcess(int pid)
      Description copied from interface: OperatingSystem
      Gets information on a currently running process
      Parameters:
      pid - A process ID
      Returns:
      An OSProcess object for the specified process id if it is running; null otherwise
    • createOSProcess

      protected OSProcess createOSProcess(int pid)
      Description copied from class: LinuxOperatingSystem
      Creates a new OSProcess instance for the given PID using the appropriate native implementation.
      Specified by:
      createOSProcess in class LinuxOperatingSystem
      Parameters:
      pid - the process ID
      Returns:
      a new OS process instance
    • getProcessId

      public int getProcessId()
      Description copied from interface: OperatingSystem
      Gets the current process ID (PID).
      Returns:
      the Process ID of the current process
    • getThreadId

      public int getThreadId()
      Description copied from interface: OperatingSystem
      Makes a best effort to get the current thread ID (TID). May not be useful in a multithreaded environment. The thread ID returned may have been short lived and no longer exist.

      Thread IDs on macOS are not correlated with any other Operating System output.

      Returns:
      the Thread ID of the current thread if known, 0 otherwise.
    • getThreadCount

      public int getThreadCount()
      Description copied from interface: OperatingSystem
      Get the number of threads currently running
      Returns:
      The number of threads running