Lines Matching +full:multi +full:- +full:attr

32  * process goes multi-threaded.
38 const pthread_attr_t *__restrict attr, void *(*start_routine)(void *),
40 return pthread_create_wrapper(thread, attr, start_routine, arg);
66 mutex_prof_data_t *data = &mutex->prof_data;
76 if (!atomic_load_b(&mutex->locked, ATOMIC_RELAXED)
78 data->n_spin_acquired++;
81 } while (cnt++ < opt_mutex_max_spin || opt_mutex_max_spin == -1);
93 uint32_t n_thds = atomic_fetch_add_u32(&data->n_waiting_thds, 1,
97 atomic_fetch_sub_u32(&data->n_waiting_thds, 1, ATOMIC_RELAXED);
98 data->n_spin_acquired++;
104 /* Update more slow-path only counters. */
105 atomic_fetch_sub_u32(&data->n_waiting_thds, 1, ATOMIC_RELAXED);
112 data->n_wait_times++;
113 nstime_add(&data->tot_wait_time, &delta);
114 if (nstime_compare(&data->max_wait_time, &delta) < 0) {
115 nstime_copy(&data->max_wait_time, &delta);
117 if (n_thds > data->max_n_thds) {
118 data->max_n_thds = n_thds;
125 nstime_init_zero(&data->max_wait_time);
126 nstime_init_zero(&data->tot_wait_time);
127 data->prev_owner = NULL;
133 mutex_prof_data_init(&mutex->prof_data);
144 return -1;
165 mutex_prof_data_init(&mutex->prof_data);
168 InitializeSRWLock(&mutex->lock);
170 if (!InitializeCriticalSectionAndSpinCount(&mutex->lock,
176 mutex->lock = OS_UNFAIR_LOCK_INIT;
179 mutex->postponed_next = postponed_mutexes;
182 if (_pthread_mutex_init_calloc_cb(&mutex->lock,
188 pthread_mutexattr_t attr;
190 if (pthread_mutexattr_init(&attr) != 0) {
193 pthread_mutexattr_settype(&attr, MALLOC_MUTEX_TYPE);
194 if (pthread_mutex_init(&mutex->lock, &attr) != 0) {
195 pthread_mutexattr_destroy(&attr);
198 pthread_mutexattr_destroy(&attr);
201 mutex->lock_order = lock_order;
203 witness_init(&mutex->witness, name, rank,
206 witness_init(&mutex->witness, name, rank, NULL, NULL);
227 if (malloc_mutex_init(mutex, mutex->witness.name,
228 mutex->witness.rank, mutex->lock_order)) {
229 malloc_printf("<jemalloc>: Error re-initializing mutex in "
243 if (_pthread_mutex_init_calloc_cb(&postponed_mutexes->lock,
247 postponed_mutexes = postponed_mutexes->postponed_next;