> 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

Reply via email to