Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005974opensim[REGION] Scripting Enginepublic2012-04-21 15:022012-04-22 19:48
Reportermewtwo0641 
Assigned Tojustincc 
PrioritynormalSeverityminorReproducibilityalways
StatusassignedResolutionopen 
PlatformOSOS Version
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0005974: llSleep called in a timer event locks script up if sleep is interrupted
DescriptionIf a sleep is called in a timer event and the script is interrupted while sleeping, then on next rez the script will be frozen and will need to be reset. I have had mixed results when putting llSetTimerEvent(0); in the timer, let it run its course, and then llSetTimerEvent(time); afterwards. When this is not done in the timer though, the script freezes every time.

I have checked my script example on SecondLife and it does not exhibit this behavior there even when not calling llSetTimerEvent(0) in the timer first.
Steps To Reproduce1. Put below script in an object in world or in an attachment.

2. Let the script count up the set text a few times.

3. Take the object back to your inventory (or detach if worn) as soon as the set text changes again.
    a. The object must be taken back or detached while the script is sleeping (Script is set to a 10 second sleep in the timer event)

4. Rez the object out again or attach the object

5. Observed behavior should be that the script will no longer respond until reset.
   a. The set text might reset back to 0 or might count up one more time, but it will eventually seize up.
Additional Information// This script demonstrates an issue where llSleep() is used inside of a timer() event
// and the script is interuppted while it is sleeping (i.e. detached, taken from in world,
// server shut down while it sleeps, etc.)

float time = 1.0;
float sleep = 10.0;
integer count = 0;

default
{
    state_entry()
    {
        llSetText((string)count, <1,1,1>, 1.0);
        llSetTimerEvent(time);
       
    }
    
    on_rez(integer params)
    {
        llResetScript();
    }
    
    timer()
    {
        //llSetTimerEvent(0);
        llSleep(sleep);
        llSetText((string)count, <1,1,1>, 1.0);
        count++;
        //llSetTimerEvent(time);
    }
}
TagsNo tags attached.
Git Revision or version numberMaster
Run Mode Standalone (Multiple Regions)
Physics EngineODE
Environment.NET / Windows32, .NET / Windows64
Mono VersionNone
ViewerN/A
Attached Files

- Relationships

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2012-04-21 15:02 mewtwo0641 New Issue
2012-04-21 15:05 mewtwo0641 Description Updated View Revisions
2012-04-22 19:07 justincc Assigned To => justincc
2012-04-22 19:07 justincc Status new => assigned


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker