internal void PostRetrieveByteCodeRequest(RetrieveBytecodeRequest rbRequest) { lock (_outstandingBytecodeRequests) { _outstandingBytecodeRequests.Enqueue(rbRequest); } _workArrived(); }
/// <summary> /// Returns serialized compiled script instances given a set of script asset ids /// </summary> /// <param name="assetIds"></param> /// <returns></returns> public Dictionary <UUID, byte[]> GetBytecodeForAssets(IEnumerable <UUID> assetIds) { if (!_masterScheduler.IsRunning) { _log.Error("[Phlox]: Unable to retrieve bytecode data for scripts, master scheduler has died"); return(new Dictionary <UUID, byte[]>()); } const int DATA_WAIT_TIMEOUT = 3000; RetrieveBytecodeRequest rbRequest = new RetrieveBytecodeRequest { ScriptIds = assetIds }; _scriptLoader.PostRetrieveByteCodeRequest(rbRequest); rbRequest.WaitForData(DATA_WAIT_TIMEOUT); return(rbRequest.Bytecodes); }
/// <summary> /// Returns serialized compiled script instances given a set of script asset ids /// </summary> /// <param name="assetIds"></param> /// <returns></returns> public Dictionary<UUID, byte[]> GetBytecodeForAssets(IEnumerable<UUID> assetIds) { if (!_masterScheduler.IsRunning) { _log.Error("[Phlox]: Unable to retrieve bytecode data for scripts, master scheduler has died"); return new Dictionary<UUID,byte[]>(); } const int DATA_WAIT_TIMEOUT = 3000; RetrieveBytecodeRequest rbRequest = new RetrieveBytecodeRequest { ScriptIds = assetIds }; _scriptLoader.PostRetrieveByteCodeRequest(rbRequest); rbRequest.WaitForData(DATA_WAIT_TIMEOUT); return rbRequest.Bytecodes; }
internal void PostRetrieveByteCodeRequest(RetrieveBytecodeRequest rbRequest) { lock (_outstandingBytecodeRequests) { _outstandingBytecodeRequests.Enqueue(rbRequest); } _workArrived(); }