static weak_ref_t *weak_ref_new(belle_sip_object_destroy_notify_t destroy_notify, void *userpointer){ weak_ref_t *r=belle_sip_new(weak_ref_t); r->next=NULL; r->notify=destroy_notify; r->userpointer=userpointer; return r; }
int belle_sip_thread_create(belle_sip_thread_t *thread, void *attr, void * (*func)(void *), void *data) { thread_param_t *params = belle_sip_new(thread_param_t); params->func = func; params->arg = data; *thread = (HANDLE)_beginthreadex(NULL, 0, thread_starter, params, 0, NULL); return 0; }