Changeset 108ef35 in rtems for cpukit/posix/src/psignal.c


Ignore:
Timestamp:
Jun 15, 1996, 7:55:39 PM (25 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
f88310da
Parents:
7f13a932
Message:

initial modifications to support sigtimedwait.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/posix/src/psignal.c

    r7f13a932 r108ef35  
    776776  siginfo_t          signal_information;
    777777  siginfo_t         *the_info;
     778  int                signo;
    778779 
    779   interval = 0;
    780   if ( timeout ) {
    781 
    782     if (timeout->tv_nsec < 0 || timeout->tv_nsec >= TOD_NANOSECONDS_PER_SECOND)
    783       set_errno_and_return_minus_one( EINVAL );
    784 
    785     interval = _POSIX_Timespec_to_interval( timeout );
    786   }
    787 
    788780  the_info = ( info ) ? info : &signal_information;
    789781
     
    795787   *  What if they are already pending?
    796788   */
     789
     790  /* API signals pending? */
    797791
    798792  if ( *set & api->signals_pending ) {
     
    801795    the_info->si_code = SI_USER;
    802796    the_info->si_value.sival_int = 0;
     797    return the_info->si_signo;
     798  }
     799
     800  /* Process pending signals? */
     801
     802#warning "Mark fix me"
     803  if ( *set & _POSIX_signals_Pending) {
     804    signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending );
     805    if ( !info || ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) ) {
     806      the_info->si_signo = signo;
     807      the_info->si_code = SI_USER;
     808      the_info->si_value.sival_int = 0;
     809    } else {
     810#warning "_POSIX_signals_Siginfo is an array of chains.... "
     811#if 0
     812      *the_info = *_POSIX_signals_Siginfo[ signo ];
     813#endif
     814    }
     815  }
     816
     817  interval = 0;
     818  if ( timeout ) {
     819
     820    if (timeout->tv_nsec < 0 || timeout->tv_nsec >= TOD_NANOSECONDS_PER_SECOND)
     821      set_errno_and_return_minus_one( EINVAL );
     822
     823    interval = _POSIX_Timespec_to_interval( timeout );
    803824  }
    804825
Note: See TracChangeset for help on using the changeset viewer.