Print this page
3830 SIGQUEUE_MAX's limit of 32 is too low

*** 18,29 **** * * CDDL HEADER END */ /* ! * Copyright 2010 Sun Microsystems, Inc. All rights reserved. ! * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ --- 18,28 ---- * * CDDL HEADER END */ /* ! * Copyright (c) 1988, 2012, Oracle and/or its affiliates. All rights reserved. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */
*** 301,320 **** } signotifyq_t; typedef struct sigqhdr { /* sigqueue pool header */ sigqueue_t *sqb_free; /* free sigq struct list */ ! uchar_t sqb_count; /* sigq free count */ ! uchar_t sqb_maxcount; /* sigq max free count */ ! ushort_t sqb_size; /* size of header+free structs */ uchar_t sqb_pexited; /* process has exited */ ! uchar_t sqb_sent; /* number of sigq sent */ kcondvar_t sqb_cv; /* waiting for a sigq struct */ kmutex_t sqb_lock; /* lock for sigq pool */ } sigqhdr_t; ! #define _SIGQUEUE_MAX 32 #define _SIGNOTIFY_MAX 32 extern void setsigact(int, void (*)(int), const k_sigset_t *, int); extern void sigorset(k_sigset_t *, const k_sigset_t *); extern void sigandset(k_sigset_t *, const k_sigset_t *); --- 300,325 ---- } signotifyq_t; typedef struct sigqhdr { /* sigqueue pool header */ sigqueue_t *sqb_free; /* free sigq struct list */ ! int sqb_count; /* sigq free count */ ! uint_t sqb_maxcount; /* sigq max free count */ ! size_t sqb_size; /* size of header+free structs */ uchar_t sqb_pexited; /* process has exited */ ! uint_t sqb_sent; /* number of sigq sent */ kcondvar_t sqb_cv; /* waiting for a sigq struct */ kmutex_t sqb_lock; /* lock for sigq pool */ } sigqhdr_t; ! /* ! * Limits on maximum number of sigqueue(3C) entries per process. ! */ ! #define _SIGQSZ_DEFAULT 128 /* default number */ ! #define _SIGQSZ_PRIVILEGED 512 /* privilege required to set abouve */ ! #define _SIGQSZ_MAX 8192 /* max even with privilege */ ! #define _SIGNOTIFY_MAX 32 extern void setsigact(int, void (*)(int), const k_sigset_t *, int); extern void sigorset(k_sigset_t *, const k_sigset_t *); extern void sigandset(k_sigset_t *, const k_sigset_t *);