zzz
zlatinb, re: mac arm bundle, you have the news feed set up and deployed on all servers for that?
zlatinb
I added the new channel to i2p.newsxmk and eyedeekay1 deployed it on his server, I haven't published any items yet though
zlatinb
guess I'll have to ping ech somehow when it's release time
zzz
no, ech is on the road, you need to ask eyedeekay1 to update eche's server if he hasn't
zlatinb
ok. I think I'll wait until 1.9 and then update the betas to 1.9
zzz
you may also wish to push a 'thanks for testing' news item in advance of the release to test it
zlatinb
That requires a url to a blog post no? If that's the case I'll wait until my right hand is functionak again ETA wednesday
zzz
url yes, but not necessarily to blog post. could be to a info page somewhere
zlatinb
ok
zlatinb
btw issue #363 is affecting the bundle
zzz
wasn't clear if that's our problem
zzz
but we have two threads both trying to write to the log and message the icon, one is the normal writer and one is the shutdown hook
zzz
doesn't look right
zzz
I think LogWriter.flushRecords() needs to be synched
zzz
but that doesn't explain why LogWriter is hung in nativeGetDockIconImage() and wouldn't necessarily fix it
zlatinb
I think the tray icon disappears too early in the shutdown process. Strange that it only happens when quitting via command-Q
zzz
might be hanging because the icon got closed already. let me look
zzz
nope, we're not closing the icon explicitly, we just let it die with the JVM
zzz
oh, I see, you clicked quit
zlatinb
right-click on dock then quit
zzz
Quit is a Mac menu item, not ours, right?
zlatinb
on the dock icon != tray icon
zlatinb
I think it just triggers a SIGTERM
zlatinb
but I haven't researched it
zzz
Main.java line 161
zzz
* TODO, if we want to handle Quit, see
zzz
*
zlatinb
ugh
zzz
so it appears we "handle" it now, things get stopped, but we need to know that and not try to send a message to the icon after it
zlatinb
that might be the easiest rather than adding Apple-specific jars
zzz
there's no state check in Main.notify() or TrayManager.displayMessage()
zzz
worst case we can just disable the notifications via a config if we can't figure it out
zzz
that post is now 13 years old, might be a non-apple way to do it now
zzz
the other way is to have the RouterAppManager stop DTG. Right now DTG is "untracked" so RAM doesn't stop it.
zzz
if we change it to "tracked", DTG will stop before the final shutdown messages
zzz
but that may still be too late, not sure
zlatinb
I tend to like that approach
zlatinb
the log writer is daemon while the shutdown hook isn't
zzz
actually the shutdown hook wakes up the log writer, waits for a while, then gives up and continues the final shutdown
zzz
that's why it's in flush() twice. because the log writer hung
zzz
so that's a symptom not a cause
zzz
I wonder if there's a TrayIcon.isDead() method or similar
zzz
nope
zlatinb
I'm ok with disabling shutdown notification on mac completely
zzz
it would be disabling all DTG popup messages
zzz
which is something we just added recently
zzz
desktopgui.showNotifications=false
zzz
the 2009 post says/implies you don't get a Window Closing event for Quit, I wonder if still true?
zzz
but it's really miserable playing with listeners/events on the icon, there's huge cross-platform differences
zzz
so may not be worth the trouble
zlatinb
no definitely not
zlatinb
snark download notifications would be nice to keep
zlatinb
but I'm ok with disabling all notifications too
zzz
please check what happens on x86, will need to know that
zlatinb
ok, need to go offline then, brb
zzz
wb
zlatinb
yes it happens on intel too
zzz
ok
zlatinb
I think I'll disable it from the router,config in the bundke
zlatinb
bundle*
zzz
I assume having RAM stop DTG won't help, since causally it would still be after Quit
zzz
I have another idea
zzz
just skip the final flushRecords() in the shutdown hook for mac. The LogWriter thread will still be hung but it's a daemon
zzz
diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java
zzz
index b98f1c528..e0ea3d4b1 100644
zzz
--- a/core/java/src/net/i2p/util/LogManager.java
zzz
+++ b/core/java/src/net/i2p/util/LogManager.java
zzz
@@ -797,7 +797,8 @@ public class LogManager implements Flushable {
zzz
// try to prevent out-of-order logging at shutdown
zzz
flush();
zzz
// this could generate out-of-order messages
zzz
- _writer.flushRecords(false);
zzz
+ if (!SystemVersion.isMac())
zzz
+ _writer.flushRecords(false);
zzz
_writer.stopWriting();
zzz
synchronized (_writer) {
zzz
_writer.notifyAll();
zlatinb
ok give me a few minutes to try it
zzz
what you lose would be the last messages to the log, plus a 250ms longer shutdown because of the sleeping in flush() waiting for the hung thread
zlatinb
works
zzz
but you keep your snark popups this way
zlatinb
yes I like that
zzz
ok. I'll check it in then?
zlatinb
yes please
zzz
done
zzz
nice to hear somebody likes the snark popups :)