Projects
Browse Source     Search     Timeline     Wiki

Changeset 23635

Show
Ignore:
Timestamp:
05/22/08 09:05:37 (6 months ago)
Author:
zarzycki@…
Message:

<rdar://problem/5954860> launchd crashed, bringing down my session

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/launchd/src/launchd_runtime.c

    r23621 r23635  
    603603{ 
    604604        struct timespec ts = { 0, 0 }; 
    605         struct kevent kev[BULK_KEV_MAX]; 
     605        struct kevent *kevi, kev[BULK_KEV_MAX]; 
    606606        int i; 
    607607 
     
    609609 
    610610        if (launchd_assumes((bulk_kev_cnt = kevent(fd, NULL, 0, kev, BULK_KEV_MAX, &ts)) != -1)) { 
    611 #if 0 
    612                 Dl_info dli; 
    613  
    614                 if (launchd_assumes(malloc_size(kev.udata) || dladdr(kev.udata, &dli))) { 
    615 #endif 
    616611                for (i = 0; i < bulk_kev_cnt; i++) { 
    617612                        log_kevent_struct(LOG_DEBUG, kev, i); 
     
    619614                for (i = 0; i < bulk_kev_cnt; i++) { 
    620615                        bulk_kev_i = i; 
    621                         if (kev[i].filter) { 
    622                                 runtime_ktrace(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_START, kev[i].ident, kev[i].filter, kev[i].fflags); 
    623                                 (*((kq_callback *)kev[i].udata))(kev[i].udata, &kev[i]); 
     616                        kevi = &kev[i]; 
     617 
     618                        if (kevi->filter) { 
     619#if 1 
     620                                Dl_info dli; 
     621 
     622                                if (launchd_assumes(malloc_size(kevi->udata) || dladdr(kevi->udata, &dli))) { 
     623#endif 
     624                                runtime_ktrace(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_START, kevi->ident, kevi->filter, kevi->fflags); 
     625                                (*((kq_callback *)kevi->udata))(kevi->udata, kevi); 
    624626                                runtime_ktrace0(RTKT_LAUNCHD_BSD_KEVENT|DBG_FUNC_END); 
     627#if 1 
     628                                } else { 
     629                                        log_kevent_struct(LOG_EMERG, kevi, 0); 
     630                                } 
     631#endif 
    625632                        } 
    626633                } 
    627 #if 0 
    628                 } else { 
    629                         log_kevent_struct(LOG_ERR, &kev, 0); 
    630                 } 
    631 #endif 
    632634        } 
    633635