Merge pull request #2516 from dhiltgen/single_tray_app
Fix a couple duplicate instance bugs
This commit is contained in:
commit
c3e62ba38a
6 changed files with 11 additions and 9 deletions
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
"os"
|
||||
|
||||
"github.com/jmorganca/ollama/app/store"
|
||||
"github.com/jmorganca/ollama/app/tray"
|
||||
|
@ -58,8 +59,8 @@ func Run() {
|
|||
}
|
||||
|
||||
if IsServerRunning(ctx) {
|
||||
slog.Debug("XXX detected server already running")
|
||||
// TODO - should we fail fast, try to kill it, or just ignore?
|
||||
slog.Info("Detected another instance of ollama running, exiting")
|
||||
os.Exit(1)
|
||||
} else {
|
||||
done, err = SpawnServer(ctx, CLIName)
|
||||
if err != nil {
|
||||
|
|
|
@ -48,7 +48,8 @@ func DoUpgrade(cancel context.CancelFunc, done chan int) error {
|
|||
if done != nil {
|
||||
<-done
|
||||
} else {
|
||||
slog.Warn("XXX done chan was nil, not actually waiting")
|
||||
// Shouldn't happen
|
||||
slog.Warn("done chan was nil, not actually waiting")
|
||||
}
|
||||
|
||||
slog.Debug(fmt.Sprintf("starting installer: %s %v", installerExe, installArgs))
|
||||
|
|
|
@ -80,6 +80,8 @@ SignTool=MySignTool
|
|||
SignedUninstaller=yes
|
||||
#endif
|
||||
|
||||
SetupMutex=OllamaSetupMutex
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
|
@ -120,6 +122,8 @@ Type: filesandordirs; Name: "{%USERPROFILE}\.ollama"
|
|||
[Messages]
|
||||
WizardReady=Ollama Windows Preview
|
||||
ReadyLabel1=%nLet's get you up and running with your own large language models.
|
||||
SetupAppRunningError=Another Ollama installer is running.%n%nPlease cancel or finish the other installer, then click OK to continue with this install, or Cancel to exit.
|
||||
|
||||
|
||||
;FinishedHeadingLabel=Run your first model
|
||||
;FinishedLabel=%nRun this command in a PowerShell or cmd terminal.%n%n%n ollama run llama2
|
||||
|
|
|
@ -45,7 +45,6 @@ func nativeLoop() {
|
|||
case 0:
|
||||
return
|
||||
default:
|
||||
// slog.Debug(fmt.Sprintf("XXX dispatching message from run loop 0x%x", m.Message))
|
||||
pTranslateMessage.Call(uintptr(unsafe.Pointer(m))) //nolint:errcheck
|
||||
pDispatchMessage.Call(uintptr(unsafe.Pointer(m))) //nolint:errcheck
|
||||
|
||||
|
@ -66,11 +65,9 @@ func (t *winTray) wndProc(hWnd windows.Handle, message uint32, wParam, lParam ui
|
|||
WM_MOUSEMOVE = 0x0200
|
||||
WM_LBUTTONDOWN = 0x0201
|
||||
)
|
||||
// slog.Debug(fmt.Sprintf("XXX in wndProc: 0x%x", message))
|
||||
switch message {
|
||||
case WM_COMMAND:
|
||||
menuItemId := int32(wParam)
|
||||
// slog.Debug(fmt.Sprintf("XXX Menu Click: %d", menuItemId))
|
||||
// https://docs.microsoft.com/en-us/windows/win32/menurc/wm-command#menus
|
||||
switch menuItemId {
|
||||
case quitMenuID:
|
||||
|
@ -151,7 +148,6 @@ func (t *winTray) wndProc(hWnd windows.Handle, message uint32, wParam, lParam ui
|
|||
slog.Debug(fmt.Sprintf("unmanaged app message, lParm: 0x%x", lParam))
|
||||
}
|
||||
case t.wmTaskbarCreated: // on explorer.exe restarts
|
||||
slog.Debug("XXX got taskbar created event")
|
||||
t.muNID.Lock()
|
||||
err := t.nid.add()
|
||||
if err != nil {
|
||||
|
@ -161,7 +157,6 @@ func (t *winTray) wndProc(hWnd windows.Handle, message uint32, wParam, lParam ui
|
|||
default:
|
||||
// Calls the default window procedure to provide default processing for any window messages that an application does not process.
|
||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms633572(v=vs.85).aspx
|
||||
// slog.Debug(fmt.Sprintf("XXX default wndProc handler 0x%x", message))
|
||||
lResult, _, _ = pDefWindowProc.Call(
|
||||
uintptr(hWnd),
|
||||
uintptr(message),
|
||||
|
|
|
@ -14,7 +14,7 @@ As this is a preview release, you should expect a few bugs here and there. If
|
|||
you run into a problem you can reach out on
|
||||
[Discord](https://discord.gg/ollama), or file an
|
||||
[issue](https://github.com/ollama/ollama/issues).
|
||||
Logs will be often be helpful in dianosing the problem (see
|
||||
Logs will often be helpful in dianosing the problem (see
|
||||
[Troubleshooting](#troubleshooting) below)
|
||||
|
||||
## System Requirements
|
||||
|
|
|
@ -60,6 +60,7 @@ function buildOllama() {
|
|||
/csp "Google Cloud KMS Provider" /kc ${env:KEY_CONTAINER} ollama.exe
|
||||
if ($LASTEXITCODE -ne 0) { exit($LASTEXITCODE)}
|
||||
}
|
||||
cp .\ollama.exe .\dist\ollama-windows-amd64.exe
|
||||
}
|
||||
|
||||
function buildApp() {
|
||||
|
|
Loading…
Reference in a new issue