/*********************************************************************** * thread_detach */ static void thread_detach(void) { struct macdrv_thread_data *data = macdrv_thread_data(); if (data) { macdrv_destroy_event_queue(data->queue); HeapFree(GetProcessHeap(), 0, data); } }
/*********************************************************************** * thread_detach */ static void thread_detach(void) { struct macdrv_thread_data *data = macdrv_thread_data(); if (data) { macdrv_destroy_event_queue(data->queue); if (data->keyboard_layout_uchr) CFRelease(data->keyboard_layout_uchr); HeapFree(GetProcessHeap(), 0, data); } }
/*********************************************************************** * thread_detach */ static void thread_detach(void) { struct macdrv_thread_data *data = macdrv_thread_data(); if (data) { macdrv_destroy_event_queue(data->queue); if (data->keyboard_layout_uchr) CFRelease(data->keyboard_layout_uchr); HeapFree(GetProcessHeap(), 0, data); /* clear data in case we get re-entered from user32 before the thread is truly dead */ TlsSetValue(thread_data_tls_index, NULL); } }