Print this page
3830 SIGQUEUE_MAX's limit of 32 is too low
@@ -45,10 +45,12 @@
#include <sys/mman.h>
#include <sys/timer.h>
#include <sys/zone.h>
#include <sys/vm_usage.h>
+extern rctl_hndl_t rc_process_sigqueue;
+
long
sysconfig(int which)
{
switch (which) {
@@ -138,11 +140,21 @@
case _CONFIG_SEM_VALUE_MAX:
return (_SEM_VALUE_MAX);
case _CONFIG_SIGQUEUE_MAX:
- return (_SIGQUEUE_MAX);
+ /*
+ * Maximum number of outstanding queued signals.
+ */
+ {
+ rlim64_t sigqsz_max;
+ mutex_enter(&curproc->p_lock);
+ sigqsz_max = rctl_enforced_value(rc_process_sigqueue,
+ curproc->p_rctls, curproc);
+ mutex_exit(&curproc->p_lock);
+ return ((uint_t)sigqsz_max);
+ }
case _CONFIG_SIGRT_MIN:
return (_SIGRTMIN);
case _CONFIG_SIGRT_MAX: