This should help you see the problem I was trying to solve: Consider the following code:

local ctr

on openstack
    put "OpenStack" & cr
   put the allowinterrupts & cr after msg
   try
      put revloadedstacks() & cr after msg
   catch err
      put "revloadedstack not found" &  cr & err & cr after msg
   end try
   send "Mark_IDE_done" to me in 2 ticks
end openstack

on Mark_IDE_done
   add 1 to ctr
   put  allowinterrupts & cr after msg
   if allowinterrupts = false then
      if ctr < 25 then
         send "Mark_IDE_done" to me in 2 ticks
      end if
   else
      put "Startup Complete" & cr after msg
       put revloadedstacks() & cr after msg
   end if
end Mark_IDE_done

Assume this is code is in a stack on the desktop and livecode is not running. When the user open this stack from the desktop you will see the following in the message box:

OpenStack
false
revloadedstack not found
219,7,11,revloadedstacks
118,7,11
465,7,11
true
Startup Complete
startupTest

Note that the OpenStack message is received before the initialization of the IDE has completed so when the revloadedstack function was called, it was not found. if you look at the IDE home stack, you will see the interrupts are blocked until all of the IDE initialization is completed.

I think that some of your assumptions regarding the loading of stacks may be incorrect. This is clearly showing that a users stack does in fact start execution before livecode initialization is completed.

The other interesting thing to note is that I found a plugin that looks like it was setting allowinterrupts to false and never setting it back to true. I put that counter in the Mark_IDE_done handler so it would not fire forever as I was debugging. Anyway, I sent off an email to the developer of the plugin to start the discussion with him off line.

I hope this clears things up for you.

Regards,
   Mike


On 12/28/14 12:53 PM, J. Landman Gay wrote:
I'm still not sure you need to mess with any of this.  What does your script 
need to do when the IDE finishes loading?

On December 28, 2014 10:29:36 AM CST, Michael Doub <miked...@gmail.com> wrote:
It does seem that allowinterupts is the correct vehicle to tell when
the
livecode part of the IDE has been fully initialized, but because of
user
written plugins it is not totally reliable.   Any other thoughts?   I
am
going to submit an enhancement request and see if something more
reliable could be made available longer term.


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to