Exemple #1
0
        /// <summary>
        ///     run a code from a shared object fille
        /// </summary>
        /// <param name="plugin">plugin to be executed</param>
        public void RunFromSO(APlugin plugin)
        {
            // .so works only on linux
            if (OSAttribute.IsLinux)
            {
                QueueLength++;

                ThreadPool.QueueUserWorkItem(obj =>
                {
                    try
                    {
                        using var dllimport = new DllImportEntryPoint();
                        var result          = dllimport.UseRunEntryPointSharedObject(plugin.Infos.FilePath);

                        plugin.RaiseOnExecutionFinished(result);
                    }
                    catch (Exception e)
                    {
                        Log.Instance?.Error($"{plugin.Infos.FileName} encountered a problem: {e.Message}");
                    }
                    finally
                    {
                        Consume();
                    }
                });
            }
        }
Exemple #2
0
        private void RunClassicDLL(APlugin plugin)
        {
            using var dllimport = new DllImportEntryPoint();

            var result = dllimport.UseRunEntryPointSharedObject(plugin.Infos.FilePath);

            plugin.RaiseOnExecutionFinished(result);
        }