public Context(ContextOptions opts, Status status) { Handle = c_api.TFE_NewContext(opts.Handle, status.Handle); status.Check(true); context_switches = new ContextSwitchStack(defaultExecutionMode == EAGER_MODE); initialized = true; }
/// <summary> /// Initialize handle and devices if not already done so. /// </summary> public void ensure_initialized() { if (initialized) { return; } Config = MergeConfig(); FunctionCallOptions.Config = Config; var config_str = Config.ToByteArray(); using var opts = new ContextOptions(); using var status = new Status(); c_api.TFE_ContextOptionsSetConfig(opts.Handle, config_str, (ulong)config_str.Length, status.Handle); status.Check(true); c_api.TFE_ContextOptionsSetDevicePlacementPolicy(opts.Handle, _device_policy); _handle = c_api.TFE_NewContext(opts.Handle, status.Handle); status.Check(true); initialized = true; }