Doh! Hang be gone

Three of us have reported success with running the 3.2.16 beta version for Windows. You can never say never, particularly when it’s a threading problem. As I noted previously, Gtk File descriptors (fd) are not the same as Ruby fd FOR WINDOWS. After chasing down the rabbit holes and inventing failing methods for moving from one rabbit warren to another I had one of those blindingly obvious in retrospect insights.

I don’t have to run my own poll loop on Windows. In fact, the pool loop on Linux is probably there for the days gone by of Green Threads. Those days won’t be coming back. Every one has native threads and multiple cores (except my Raspberry pi) Let the default GTK thread do it’s thing which synchronously calls most of the Shoes code. It’s only additional Ruby threads initiated by Shoes (rarely) or the users script that makes threading calls that needs a wake call to run and I can trigger that with a gtk_timeout function that calls rb_thread_schedule().

CPU dropped from 100% to negligible. The hang disappeared and we all live happy in the land of milk and honey dancing polka’s with the unicorns and leprechauns.

Obviously this will be the major bug fix for the upcoming Shoes 3.2.16 but I want to finish restoring the packager before a general release of 3.2.16 – just some osx work left – how many days could that take?

If you can’t wait for the Windows hang fix, you can find the beta directory from the downloads tab at the top of the screen.

4 thoughts on “Doh! Hang be gone

  1. passenger

    Thanks, kudos, for your work !!!!
    please note this works on 3.2
    @circle = oval left: 30, top: 50 , width: 140, height: 90, fill: green, stroke: red, strokewidth: 10
    Shoes.debug @circle.style[:left]

    c2 = oval 190, 50, radius: 60
    Shoes.debug c2.style[:radius]

    but this not : c2 = oval 190, 50, 60

    Reply
  2. ccoupe Post author

    To rephrase, you can create an oval without the hash key specifiers?

    If so, that would apply to all or most of the Shapes. That would lead me to suspect that Shoes may be calling a internal Ruby API which has changed behavior since 1.8

    If it’s a problem for you, please file a bug report at https://github.com/shoes/shoes/issues so we don’t forget it. I’m a little busy at the moment.

    Reply
  3. passenger

    haha no, no problem ;-D sorry was tired …
    i was refering to the discussion on the shoes archive librelist, nobody mentionned you could access top, left etc… via the style method
    and while checking i noticed that if you specify the radius of an oval directly (not in a hash) you can’t access the radius value even with the style method !? (not a big deal just something strange unless it’s a symptom of something bigger)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *