> But it isn't clear to me why it would die in OSIncrementAtomicLong(). > 'current_proc()' will never return NULL, and we pass the test of p->p_stats.
I stand corrected, current_proc() can indeed return NULL, so no wonder calling msleep() at such a time would result in fireworks. Is there is a known "event" to wait for when we are allowed to call msleep()?, or should I just delay until current_proc() != NULL? struct fake_proc { void *padding[0xf0 / 8]; void *p_stats; }; struct fake_proc *p = (struct fake_proc *)current_proc(); printf("SPL DEBUG: p is %d p->p_stats %d \n", p != NULL, p && p->p_stats); delay(hz<<2); printf("continuing...\n"); (spl-taskq.c:1586)> kernel: (spl) SPL DEBUG: p is 0 p->p_stats 0 (spl-taskq.c:2126)> kernel: (spl) continuing... (spl-taskq.c:1586)> kernel: (spl) SPL DEBUG: p is 1 p->p_stats 1 -- Jorgen Lundman | <lund...@lundman.net> Unix Administrator | +81 (0)90-5578-8500 Shibuya-ku, Tokyo | Japan _______________________________________________ Do not post admin requests to the list. They will be ignored. Filesystem-dev mailing list (Filesystem-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/filesystem-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com