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

Using lock() to enforce external synchronization #8

Open
Mervill opened this issue Jun 16, 2016 · 0 comments
Open

Using lock() to enforce external synchronization #8

Mervill opened this issue Jun 16, 2016 · 0 comments

Comments

@Mervill
Copy link
Owner

Mervill commented Jun 16, 2016

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant