Skip to content

Why I got a Datarace error? #1102

Description

@yunfengzh

The script is briefly below:

let relic = #{
    on_player_die: |evt, cnt| {
            ...
            player.set(3); // crashed with datarace error!!
            ...

};

fn fight() {
    player.adjust(-15);
    1
}

================
player var is a rust var registered into script. Player will broadcast an event into script by relic.on_player_die().

I just want to know why rhai prevents above code pattern at all? If it‘s for infinite recursion, Engine.set_max_call_levels(16) is enough!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions