using System; using System.Runtime.InteropServices; using System.Threading; using AOT; namespace Sony.NP { // Token: 0x0200013A RID: 314 internal static class NpRequestsThread { // Token: 0x0600066F RID: 1647 [DllImport("UnityNpToolkit2")] private static extern bool PrxPollFirstRequest(); // Token: 0x06000670 RID: 1648 RVA: 0x000124C7 File Offset: 0x000114C7 public static void Start() { NpRequestsThread.stopThread = false; NpRequestsThread.requestsThread = new Thread(new ThreadStart(NpRequestsThread.RunProc)); NpRequestsThread.requestsThread.Name = "Requests Thread"; NpRequestsThread.requestsThread.Start(); } // Token: 0x06000671 RID: 1649 RVA: 0x00012504 File Offset: 0x00011504 private static void RunProc() { NpRequestsThread.workLoad.WaitOne(); while (!NpRequestsThread.stopThread) { if (NpRequestsThread.PrxPollFirstRequest()) { NpRequestsThread.workLoad.WaitOne(); } else { Thread.Sleep(1000); } } } // Token: 0x06000672 RID: 1650 RVA: 0x00012555 File Offset: 0x00011555 public static void Execute() { NpRequestsThread.workLoad.Release(); } // Token: 0x06000673 RID: 1651 RVA: 0x00012563 File Offset: 0x00011563 public static void Stop() { NpRequestsThread.stopThread = true; NpRequestsThread.workLoad.Release(); } // Token: 0x06000674 RID: 1652 RVA: 0x00012577 File Offset: 0x00011577 [MonoPInvokeCallback(typeof(Main.OnPrxCallbackEvent))] public static void OnPrxNpRequestEvent() { NpRequestsThread.Execute(); } // Token: 0x04000632 RID: 1586 private static Thread requestsThread; // Token: 0x04000633 RID: 1587 private static bool stopThread = false; // Token: 0x04000634 RID: 1588 private static Semaphore workLoad = new Semaphore(0, 1000); } }