Date: Wed, 12 Apr 2017 11:17:18 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Jan Beich <jbeich@FreeBSD.org> Cc: Christoph Moench-Tegeder <cmt@burggraben.net>, freebsd-gecko@freebsd.org, freebsd-threads@freebsd.org Subject: Re: FreeBSD Port: www/firefox Message-ID: <20170412081718.GU1788@kib.kiev.ua> In-Reply-To: <o9w2-ebq8-wny@FreeBSD.org> References: <CAFn_OkF1V3CHTQCQFG_HDJ5dmuXvTYxX6UOoe81rpKyiF19WcA@mail.gmail.com> <1491928081558-6179754.post@n6.nabble.com> <37de-onxw-wny@FreeBSD.org> <20170411182519.GB1556@elch.exwg.net> <o9w2-ebq8-wny@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 12, 2017 at 02:00:31AM +0200, Jan Beich wrote: > Christoph Moench-Tegeder <cmt@burggraben.net> writes: > > > ## Jan Beich (jbeich@FreeBSD.org): > > > >> Walter Schwarzenfeld (privately) writes: > >> > With gtk3 on it starts after sysctl p1003_1b.sem_nsems_max=512. > >> > Please => pkg-message. > >> > >> Don't use sem(4), it's deprecated since FreeBSD 9.0. p1003_1b.sem_nsems_max > >> doesn't have an effect with the new implementation. > >> > >> https://svnweb.freebsd.org/changeset/base/201546 > > > > Um. Firefox' "configure" code explicitly checks the maximum number > > of semaphores via sysconf(_SC_SEM_NSEMS_MAX) (that's in > > python/futures/concurrent/futures/process.py l. 250). As far as I > > can tell, in FreeBSD 10.3 that value is set by sysctl > > p1003_1b.sem_nsems_max - so at least for the "old" FreeBSD, that > > would be the way to go? (and it worked for me). > > FreeBSD 8.x has been EOL since 2015-08-01. However, sysconf() ends up > using sem(4) even for new code. Maybe someone from threads@ knows more. > > $ getconf SEM_NSEMS_MAX > undefined > > $ kldload sem > $ getconf SEM_NSEMS_MAX > 30 The following should fix sysconf(3): diff --git a/lib/libc/gen/sysconf.c b/lib/libc/gen/sysconf.c index ffd9f6b4fa7..a69f3778b64 100644 --- a/lib/libc/gen/sysconf.c +++ b/lib/libc/gen/sysconf.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include <limits.h> #include <paths.h> #include <pthread.h> /* we just need the limits */ +#include <semaphore.h> #include <time.h> #include <unistd.h> #include "un-namespace.h" @@ -299,13 +300,9 @@ do_NAME_MAX: mib[1] = CTL_P1003_1B_RTSIG_MAX; goto yesno; case _SC_SEM_NSEMS_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_NSEMS_MAX; - goto yesno; + return (-1); case _SC_SEM_VALUE_MAX: - mib[0] = CTL_P1003_1B; - mib[1] = CTL_P1003_1B_SEM_VALUE_MAX; - goto yesno; + return (SEM_VALUE_MAX); case _SC_SIGQUEUE_MAX: mib[0] = CTL_P1003_1B; mib[1] = CTL_P1003_1B_SIGQUEUE_MAX;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170412081718.GU1788>