Skip to content
This repository was archived by the owner on Sep 11, 2021. It is now read-only.
This repository was archived by the owner on Sep 11, 2021. It is now read-only.

Using lock() to enforce external synchronization #8

Description

@Mervill

Vulkan spec §2.5. Threading Behavior:

All commands support being called concurrently from multiple threads, but certain parameters, 
or components of parameters are defined to be externally synchronized. This means that the 
caller must guarantee that no more than one thread is using such a parameter at a given time.

There is currently an experimental feature of the generator, LockExternSync which when set to True will generate a lock() statement in commands that use arguments marked as ExternSync and are not also optional.

In general, I don't have as much experience in multithreading as I'd like, and threading in C# can get pretty muddy when things like async are brought into the picture.

Ideas about how to make Tanagra work with C#'s threading infrastructure would be greatly appreciated.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions