7stacks v1.5 beta 2 is out

Posted by on Jun 27, 2011 in 7stacks, News | 6 comments

I have just released 7stacks v1.5 beta 2.  As I stated in my previous post, this is simply a workaround for those who are having problems w/ 7stacks and Google Chrome.  Often, when Chrome was running (mostly when viewing Flash or Silverlight sites), 7stacks would simply not appear when clicked.

If you do not use Chrome, you can still continue to use beta 1.  If you do use Chrome, I’d highly suggest immediately downloading beta 2.

Many, many of you have correctly pointed out that Chrome seems to foul up 7stacks.  I could be way off, but I believe the reason is because of a bug inside Google Chrome.  Yes, I realize that given the odds-on choice of who screwed up: tiny, insect-like me, or massive, behemoth Google, usually the egregious party will be me.  But I honestly do think that Chrome is doing something wrong.  If you don’t care for highly geeky explanations, you’re under no obligation to read the following…

Warning: Science Content — In the 7stacks preferences, there is an option to make the show/hide behavior to mimic OS X’s; that is: click the icon once to show the stack, click it again to hide it.  In Windows, clicking the stack icon again has the effect of running a 2nd copy of that stack.  So, in order to accomplish the trick of mimicking OSX, that stack’s 2nd copy (Stack #2) checks to see if another copy is running (Stack #1).  If it is, Stack #2 sends a message to Stack #1, telling Stack #1 to close, then Stack #2 closes itself.  Basically, when a stack pops up, it asks, “Are there any other stacks out there?”

Each of these stacks are what Windows calls a “process”.  And the act of these processes communicating w/ one another is a programming technique called inter-process communication, or “IPC” for short.

The easiest, and most efficient method of IPC within Windows is the use of a built-in message, WM_COPYDATA.  It allows processes to fire off a message that will be received by other processes that are looking for these messages to come along.  But, for some reason, when Chrome is running, all WM_COPYDATA messages being intercepted, and not being passed on as they should.

In effect, when it asks “Are there any other stacks out there?”  It should either hear a “Yes!” from another stack, or it should receive all “No”s from the other processes.  Instead, Chrome eats the message and says nothing, and 7stacks sits there and waits until it hears a reply.  This is why clicking the stack does nothing.

Its also entirely possible that this is not a bug in Chrome; it could’ve been designed this way.  The only reason I could imagine why is for security purposes.  I guess it could be theoretically possible to stuff data into other processes using WM_COPYDATA, but there’s no way to do this as far as I know.  Again, the chances that Google is smarter than me is pretty high.

At any rate, beta 2 handles IPC a different way: by the use of timers and semaphores.  Think of it as two spies leaving messages for one another at a dead-drop site, and each one checking that site at a set interval.  In this case, that interval is 10 milliseconds.  This method still accomplishes the goal, without running afoul of Chrome.

Computer Science lesson over…

If anyone finds any more bugs, send a tech support email.  I may not reply to every email, but I do read every email.  Thanks for your continued support of 7stacks.

6 Responses to “7stacks v1.5 beta 2 is out”

  1. Yochanan says:

    I never encountered that bug, but thanks for fixing it. Are you still planning on developing it further?

    • Derek Moore says:

      Yes, I will continue to work on 7stacks. But since its a free app, it’s development is, unfortunately, a lower priority than the other apps… Unless I get more donations 🙂

  2. In beta1 i had massive delay before pressing mouse and open stacks. Will try beta2. Win7 32, 2 Gb RAM

  3. nett_flanders says:

    I also encountered that bug on my two machines (notebook and desktop pc) but never used Google Chrome. Instead of using Chrome I use Firefox but I couldn’t find a relationship between the appearance of the bug and Firefox running.
    I will have a look if the bug is also solved on my machines with beta 2.


  4. Sabhira says:

    Thank you so much for the workaround for the Chrome “feature” — I just could not function without this awesome little tool. 😀

  5. jackkill says:

    Thanks a Lot!!!
    I gathered and created and converted high res icons in order to get a superb copy of osx behavior. I have 8 categories that open up to more choices which saves me a lot of time and keeps my desktop clean 🙂
    The beta1 bug was killing me and had me always open task manager and kill the rundll32 process in order to get it working again (yes I chrome a lot :p ).
    Thank you for this great software 🙂
    a quick peek at one of my subcategories (gorgeous 🙂 ) http://i53.tinypic.com/j93pli.png