+2001-04-03 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+
+ * gthread-posix.c: Added special case for priorities on
+ FreeBSD. Thanks to David Reid <dreid@jetnet.co.uk> for the info.
+
+ * gthread-impl.c: Made two macros safe with ().
+
2001-03-10 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Use the _LIBADD dependency on libglib only on
#ifndef PRIORITY_NORMAL_VALUE
# define PRIORITY_NORMAL_VALUE \
- PRIORITY_LOW_VALUE + (PRIORITY_URGENT_VALUE - PRIORITY_LOW_VALUE) * 40 / 100
+ (PRIORITY_LOW_VALUE + (PRIORITY_URGENT_VALUE - PRIORITY_LOW_VALUE) * 4 / 10)
#endif /* PRIORITY_NORMAL_VALUE */
#ifndef PRIORITY_HIGH_VALUE
# define PRIORITY_HIGH_VALUE \
- PRIORITY_LOW_VALUE + (PRIORITY_URGENT_VALUE - PRIORITY_LOW_VALUE) * 80 / 100
+ (PRIORITY_LOW_VALUE + (PRIORITY_URGENT_VALUE - PRIORITY_LOW_VALUE) * 8 / 10)
#endif /* PRIORITY_HIGH_VALUE */
void g_mutex_init (void);
#if defined (POSIX_MIN_PRIORITY) && defined (POSIX_MAX_PRIORITY)
# define HAVE_PRIORITIES 1
-# define PRIORITY_LOW_VALUE POSIX_MIN_PRIORITY
-# define PRIORITY_URGENT_VALUE POSIX_MAX_PRIORITY
+# ifdef __FreeBSD__
+ /* FreeBSD threads use different priority values from the POSIX_
+ * defines so we just set them here. The corresponding macros
+ * PTHREAD_MIN_PRIORITY and PTHREAD_MAX_PRIORITY are implied to be
+ * exported by the docs, but they aren't.
+ */
+# define PRIORITY_LOW_VALUE 0
+# define PRIORITY_URGENT_VALUE 31
+# else /* !__FreeBSD__ */
+# define PRIORITY_LOW_VALUE POSIX_MIN_PRIORITY
+# define PRIORITY_URGENT_VALUE POSIX_MAX_PRIORITY
+# endif /* !__FreeBSD__ */
#endif /* POSIX_MIN_PRIORITY && POSIX_MAX_PRIORITY */
static gulong g_thread_min_stack_size = 0;