ObjFW  Diff

Differences From Artifact [f81dcfe3c4]:

To Artifact [8449195015]:


179
180
181
182
183
184
185
186






187
188
189
190
191
192
193
179
180
181
182
183
184
185

186
187
188
189
190
191
192
193
194
195
196
197
198







-
+
+
+
+
+
+







#endif
}

static OF_INLINE bool
of_spinlock_trylock(of_spinlock_t *spinlock)
{
#if defined(OF_HAVE_ATOMIC_OPS)
	return of_atomic_int_cmpswap(spinlock, 0, 1);
	if (of_atomic_int_cmpswap(spinlock, 0, 1)) {
		of_memory_enter_barrier();
		return true;
	}

	return false;
#elif defined(OF_HAVE_PTHREAD_SPINLOCKS)
	return !pthread_spin_trylock(spinlock);
#else
	return of_mutex_trylock(spinlock);
#endif
}

212
213
214
215
216
217
218
219





220
221
222
223
224
225
226
217
218
219
220
221
222
223

224
225
226
227
228
229
230
231
232
233
234
235







-
+
+
+
+
+







#endif
}

static OF_INLINE bool
of_spinlock_unlock(of_spinlock_t *spinlock)
{
#if defined(OF_HAVE_ATOMIC_OPS)
	return of_atomic_int_cmpswap(spinlock, 1, 0);
	bool ret = of_atomic_int_cmpswap(spinlock, 1, 0);

	of_memory_leave_barrier();

	return ret;
#elif defined(OF_HAVE_PTHREAD_SPINLOCKS)
	return !pthread_spin_unlock(spinlock);
#else
	return of_mutex_unlock(spinlock);
#endif
}