Ignore:
Timestamp:
Nov 6, 2004, 9:35:32 AM (21 years ago)
Author:
bird
Message:

signals are finally getting somewhere...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/InnoTekLIBC/sharedpm.h

    • Property cvs2svn:cvs-rev changed from 1.11 to 1.12
    r1614 r1615  
    109109
    110110
     111/** The maximum number of signals a process can have pending on other processes concurrently. */
     112#define __LIBC_SPM_SIGNALS_MAX_SENT 48
     113
    111114/**
    112115 * Signal (queued).
     
    118121    /** Pointer to the next signal. */
    119122    struct __libc_SPMSignal    *pNext;
     123    /** Sender process.
     124     * This is used to decrement the cSigsSent count of the sender. */
     125    pid_t                       pidSender;
     126
    120127    /** Signal info. */
    121128    siginfo_t                   Info;
     
    277284     * For signals which aren't queable only one signal can be queued.
    278285     */
    279     __LIBC_PSPMSIGNAL           pSigHead;
    280     /** Number of queued signals.
    281      * After it passes 48 signals, only SIGCHLD will be queued.
    282      * This means siqueue() won't work 100% according to spec. */
    283     unsigned                    cSigsQueued;
     286    volatile __LIBC_PSPMSIGNAL  pSigHead;
     287    /** Number of signals send.
     288     * After __LIBC_SPM_SIGNALS_MAX_SENT signals only SIGCHLD will be allowed sent.
     289     */
     290    volatile unsigned           cSigsSent;
    284291
    285292    /** Reserved pool pointer field with default value 0. */
     
    653660
    654661/**
    655  * De-queues one or more pending signals.
     662 * Get the signal set of pending signals.
     663 *
     664 * @returns Number of pending signals on success.
     665 * @returns 0 if no signals are pending.
     666 * @returns Negative error code (errno.h) on failure.
     667 * @param   pSigSet     Where to create the set of pending signals.
     668 */
     669int     __libc_spmSigPending(sigset_t *pSigSet);
     670
     671/**
     672 * De-queues one or more pending signals of a specific type.
     673 *
    656674 * @returns Number of de-queued signals on success.
    657675 * @returns Negative error code (errno.h) on failure.
     676 * @param   iSignalNo   Signal type to dequeue.
    658677 * @param   paSignals   Where to store the signals.
    659678 * @param   cSignals    Size of the signal array.
    660679 * @param   cbSignal    Size of one signal entry.
    661680 */
    662 int     __libc_spmSigDequeue(siginfo_t *paSignals, unsigned cSignals, size_t cbSignal);
     681int     __libc_spmSigDequeue(int iSignalNo, siginfo_t *paSignals, unsigned cSignals, size_t cbSignal);
    663682
    664683
Note: See TracChangeset for help on using the changeset viewer.