Josh Simmons (@jsimmons) commented about dlls/d3dx10_43/d3dx10_43_main.c:
- ID3DX10ThreadPump ID3DX10ThreadPump_iface;
- LONG refcount;
- LONG processing_count;
- SRWLOCK io_lock;
- UINT io_count;
- struct list io_queue;
- SRWLOCK proc_lock;
- UINT proc_count;
- struct list proc_queue;
- SRWLOCK device_lock;
- UINT device_count;
- struct list device_queue;
Unsolicited nit, but since these are separately locked queues they should probably be padded out to be on their own cache lines to avoid false sharing.
(No idea whether this API is hot enough for that to be truly important, though)