Path: utzoo!utgpu!attcan!uunet!husc6!rutgers!ucsd!ucbvax!SUN.COM!gregm
From: gregm@SUN.COM (Greg McLaughlin)
Newsgroups: comp.windows.news
Subject: YinYang bug...
Message-ID: <8808152208.AA29564@dublin.sun.com>
Date: 16 Aug 88 04:23:38 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 39


There is a small bug in the YinYang root spin routine sent out a
while back. Once awaitevent returns it needed to pop the
unused event. If run long enough the NeWS stack would overflow.

Here is the patched version:

Greg McLaughlin
Sun Microsystems Inc.

----------------------------TimeYinYang----------------------------------
% Set the yin/yang to spin by queuing events.
/TimeYinYang { % - => process
  {
    /d 2 dict dup begin
      /RotateYinYang {
        /YinYangAng YinYangAng 5 add store % change the 5 to adjust
                                           % the speed
        gsave
        framebuffer setcanvas
        YinYangAng 160 60 yinyang
        grestore
        SendNewYinYangEvent
      } def
    end def
    /e1 createevent def
    e1 /Name d put
    e1 expressinterest
    /SendNewYinYangEvent {
        e1 createevent copy dup begin
        /Name /RotateYinYang def
        /TimeStamp currenttime .05 add def
      end
      sendevent
    } def
    SendNewYinYangEvent
    { awaitevent pop} loop
  } fork
} def