Changeset 23623
- Timestamp:
- 2008-05-09 13:05:28 (5 months ago)
- Files:
-
- 1 modified
-
trunk/launchd/src/libbootstrap.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/launchd/src/libbootstrap.c
r23611 r23623 174 174 static mach_port_t prev_sp; 175 175 static name_t prev_name; 176 bool per_pid_lookup = flags & BOOTSTRAP_PER_PID_SERVICE; 176 177 kern_return_t kr = 0; 177 178 mach_port_t puc; 178 179 179 180 pthread_mutex_lock(&bslu2_lock); 181 182 if (per_pid_lookup) { 183 goto skip_cache; 184 } 180 185 181 186 if (prev_sp) { … … 190 195 } 191 196 197 skip_cache: 192 198 if ((kr = vproc_mig_look_up2(bp, service_name, sp, target_pid, flags)) != VPROC_ERR_TRY_PER_USER) { 193 199 goto out; … … 202 208 203 209 out: 204 if (kr == 0 && prev_sp == 0 && mach_port_mod_refs(mach_task_self(), *sp, MACH_PORT_RIGHT_SEND, 1) == 0) { 210 if (!per_pid_lookup && kr == 0 && prev_sp == 0 211 && mach_port_mod_refs(mach_task_self(), *sp, MACH_PORT_RIGHT_SEND, 1) == 0) { 205 212 /* We're going to hold on to a send right as a MRU cache */ 206 213 prev_bp = bp;

