Ejemplo n.º 1
0
void
launchd_runtime_init(void)
{
#ifdef notyet
	pid_t p = getpid();
#endif
	(void)posix_assert_zero((mainkq = kqueue()));

	os_assert_zero(mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &demand_port_set));
	os_assert_zero(mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET, &ipc_port_set));
	posix_assert_zero(kevent_mod(demand_port_set, EVFILT_MACHPORT, EV_ADD, 0, 0, &kqmportset_callback));

	os_assert_zero(launchd_mport_create_recv(&launchd_internal_port));
	os_assert_zero(launchd_mport_make_send(launchd_internal_port));

	max_msg_size = sizeof(union vproc_mig_max_sz);
#ifdef notyet
	if (sizeof(union xpc_domain_max_sz) > max_msg_size) {
		max_msg_size = sizeof(union xpc_domain_max_sz);
	}
#endif

	os_assert_zero(runtime_add_mport(launchd_internal_port, launchd_internal_demux));
	os_assert_zero(pthread_create(&kqueue_demand_thread, NULL, kqueue_demand_loop, NULL));
	os_assert_zero(pthread_detach(kqueue_demand_thread));

	os_assert_zero(pthread_create(&waitpid_thread, NULL, waitpid_loop, NULL));
	os_assert_zero(pthread_detach(waitpid_thread));

#ifdef notyet
	(void)posix_assumes_zero(sysctlbyname("vfs.generic.noremotehang", NULL, NULL, &p, sizeof(p)));
#endif
}
Ejemplo n.º 2
0
void
launchd_runtime_init2(void)
{
	size_t i;

	__OS_COMPILETIME_ASSERT__(SIG_ERR == (typeof(SIG_ERR))-1);
	for (i = 0; i < (sizeof(sigigns) / sizeof(int)); i++) {
		sigaddset(&sigign_set, sigigns[i]);
		(void)posix_assumes_zero(signal(sigigns[i], SIG_IGN));
	}
}