Lines Matching defs:spawn_data
2327 struct spawn_exec_data *spawn_data = arg;
2342 struct posix_spawnattr *attrs = spawn_data->sed_attrs;
2347 mutex_enter(&spawn_data->sed_mtx_child);
2348 KASSERT(!spawn_data->sed_child_ready);
2349 spawn_data->sed_error = 0;
2350 spawn_data->sed_child_ready = true;
2351 cv_signal(&spawn_data->sed_cv_child_ready);
2352 mutex_exit(&spawn_data->sed_mtx_child);
2360 error = handle_posix_spawn_attrs(attrs, spawn_data->sed_parent);
2365 error = handle_posix_spawn_file_actions(spawn_data->sed_actions);
2370 error = execve_runproc(l, &spawn_data->sed_exec, parent_is_waiting,
2379 mutex_enter(&spawn_data->sed_mtx_child);
2380 KASSERT(!spawn_data->sed_child_ready);
2381 spawn_data->sed_error = 0;
2382 spawn_data->sed_child_ready = true;
2383 cv_signal(&spawn_data->sed_cv_child_ready);
2384 mutex_exit(&spawn_data->sed_mtx_child);
2388 spawn_exec_data_release(spawn_data);
2406 * taken ownership of the sed_exec part of spawn_data,
2410 execve_free_data(&spawn_data->sed_exec);
2415 mutex_enter(&spawn_data->sed_mtx_child);
2416 KASSERT(!spawn_data->sed_child_ready);
2417 spawn_data->sed_error = error;
2418 spawn_data->sed_child_ready = true;
2419 cv_signal(&spawn_data->sed_cv_child_ready);
2420 mutex_exit(&spawn_data->sed_mtx_child);
2426 spawn_exec_data_release(spawn_data);
2576 struct spawn_exec_data *spawn_data;
2583 /* Allocate and init spawn_data */
2584 spawn_data = kmem_zalloc(sizeof(*spawn_data), KM_SLEEP);
2585 spawn_data->sed_refcnt = 1; /* only parent so far */
2586 cv_init(&spawn_data->sed_cv_child_ready, "pspawn");
2587 mutex_init(&spawn_data->sed_mtx_child, MUTEX_DEFAULT, IPL_NONE);
2588 mutex_enter(&spawn_data->sed_mtx_child);
2592 * in spawn_data.
2595 envp, fetch, &spawn_data->sed_exec);
2745 spawn_data->sed_actions = fa;
2746 spawn_data->sed_attrs = sa;
2748 spawn_data->sed_parent = p1;
2751 lwp_create(l1, p2, uaddr, 0, NULL, 0, spawn_return, spawn_data,
2778 spawn_data->sed_refcnt = 2; /* child gets it as well */
2830 while (!spawn_data->sed_child_ready) {
2831 cv_wait(&spawn_data->sed_cv_child_ready,
2832 &spawn_data->sed_mtx_child);
2834 error = spawn_data->sed_error;
2835 mutex_exit(&spawn_data->sed_mtx_child);
2836 spawn_exec_data_release(spawn_data);
2863 execve_free_data(&spawn_data->sed_exec);
2867 mutex_exit(&spawn_data->sed_mtx_child);
2868 spawn_exec_data_release(spawn_data);