Skip to content

event callbacks that make gRPC calls can cause race conditions #111

@randallfrank

Description

@randallfrank

There are two potential issues here:

  1. if a callback makes another implicit gRPC call, it can cause re-entrancy problems (e.g. the gRPC connection can be shut down)
  2. repeated callbacks can queue client side and cause gil contention in the client Python

In any case, the current implementation can cause problems with calls like this:

session.ensight.objs.core.parts[("hood", "engine")].set_attr(session.ensight.enums.VISIBLE, False)

for a class-based callback associated with the "VISIBLE" attribute. The current work-around is to use macro expansion in the callback string to avoid the conflict in most cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions