supermemo / SuperMemoAssistant

A companion app for SuperMemo 17-18 which extends its functionalities through plugins.
https://www.supermemo.wiki/sma/
MIT License
199 stars 21 forks source link

Issues running it within supermemo-wine's wine prefix #258

Open middleeasternfag opened 2 years ago

middleeasternfag commented 2 years ago

Description

I used the SuperMemo 18 installer in Lutris which, afaik, is based on https://github.com/alessivs/supermemo-wine SuperMemo itself runs fine and I managed to install SuperMemoAssistant too, however, I cannot start it (log attached at the bottom)

Steps to Reproduce

Tell us how to reproduce this issue.

  1. Install SuperMemo 18 using Lutris' premade installer for it
  2. Change prefix version to Windows 7 to install SuperMemoAssistant
  3. Try running SuperMemoAssistant once installed

Expected behavior

I expected the program to start.

Logs, Screenshots, ...

[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
  at System.Windows.Threading.Dispatcher.VerifyAccess () [0x00019] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.DispatcherObject.VerifyAccess () [0x00011] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Application.CriticalShutdown (System.Int32 exitCode) [0x00001] in <6d8a3e16a1134f30b643e79086cc91a6>:0 
  at System.Windows.Application.Shutdown (System.Int32 exitCode) [0x00001] in <6d8a3e16a1134f30b643e79086cc91a6>:0 
  at SuperMemoAssistant.App.Application_Startup (System.Object o, System.Windows.StartupEventArgs e) [0x001bc] in <c1b04885f87a4ed0bf22218ae1c7debc>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate callback, System.Object args, System.Int32 numArgs) [0x000e7] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object source, System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) [0x00004] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.WrappedInvoke (System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) [0x00001] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.DispatcherOperation.InvokeImpl () [0x00099] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext (System.Object state) [0x00008] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper (System.Object obj) [0x0001d] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <e70d6e9587d64cb3abb4b3f99bbf5a0d>:0 
  at MS.Internal.CulturePreservingExecutionContext.Run (MS.Internal.CulturePreservingExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00047] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.DispatcherOperation.Invoke () [0x00016] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.ProcessQueue () [0x00114] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.WndProcHook (System.IntPtr hwnd, System.Int32 msg, System.IntPtr wParam, System.IntPtr lParam, System.Boolean& handled) [0x00061] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at MS.Win32.HwndWrapper.WndProc (System.IntPtr hwnd, System.Int32 msg, System.IntPtr wParam, System.IntPtr lParam, System.Boolean& handled) [0x0003a] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at MS.Win32.HwndSubclass.DispatcherCallbackOperation (System.Object o) [0x00042] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate callback, System.Object args, System.Int32 numArgs) [0x000c6] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object source, System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) [0x00004] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.WrappedInvoke (System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) [0x00001] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.LegacyInvokeImpl (System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, System.Object args, System.Int32 numArgs) [0x000fc] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.Invoke (System.Windows.Threading.DispatcherPriority priority, System.Delegate method, System.Object arg) [0x00011] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at MS.Win32.HwndSubclass.SubclassWndProc (System.IntPtr hwnd, System.Int32 msg, System.IntPtr wParam, System.IntPtr lParam) [0x00154] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at (wrapper native-to-managed) MS.Win32.HwndSubclass.SubclassWndProc(intptr,int,intptr,intptr)
  at (wrapper managed-to-native) MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG&)
  at System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage (System.Windows.Interop.MSG& msg) [0x0001a] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.PushFrameImpl (System.Windows.Threading.DispatcherFrame frame) [0x0004c] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.PushFrame (System.Windows.Threading.DispatcherFrame frame) [0x00077] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Threading.Dispatcher.Run () [0x00006] in <9d68fc7e9ca6432984526a7de5bf04b6>:0 
  at System.Windows.Application.RunDispatcher (System.Object ignore) [0x00023] in <6d8a3e16a1134f30b643e79086cc91a6>:0 
  at System.Windows.Application.RunInternal (System.Windows.Window window) [0x0010d] in <6d8a3e16a1134f30b643e79086cc91a6>:0 
  at System.Windows.Application.Run (System.Windows.Window window) [0x00008] in <6d8a3e16a1134f30b643e79086cc91a6>:0 
  at System.Windows.Application.Run () [0x00009] in <6d8a3e16a1134f30b643e79086cc91a6>:0 

Environment (fill where applicable)

Additional context

I am running Wine/Lutris on Arch Linux 64-bit, in case that matters.

alexis- commented 2 years ago

Hello,

It is unlikely SMA will ever run on Linux or any Windows environment emulation under it because it relies on many low-level mechanisms to control SuperMemo. It would require an important time investment to make SMA cross-platform.