<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 12, 2019 at 5:18 AM Derek Lesho <<a href="mailto:dlesho@codeweavers.com">dlesho@codeweavers.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+    for (unsigned int i = 0; i < desc->NumDescriptors; i++)<br>
+    {<br>
+        struct d3d12_desc *cur_desc = (struct d3d12_desc *) (object->descriptors + (i * descriptor_size));<br>
+        pthread_spinlock_t *lock = vkd3d_malloc(sizeof(pthread_spinlock_t));<br>
+<br>
+        pthread_spin_init(lock, PTHREAD_PROCESS_PRIVATE);<br>
+        cur_desc->lock = lock;<br>
+    }<br></blockquote><div><br></div><div>On Linux, pthread_spinlock_t is just a single int (not sure about the 
Mac equivalent but probably similar). It's more efficient to declare 
cur_desc->lock as a pthread_spinlock_t rather than a pointer to one 
in allocated memory. <br></div></div></div>