Hi!

I'm not sure where the best place is to ask this. But what's the
recommended way to prevent the quantum context switching threads? I only
want it to context switch when I have a thread-yield or blocking I/O, and
not automatically based on a 10ms timer. This would imitate asyncio from
python pretty well for me. Because then I wouldn't need any mutex logic
since I'm guaranteed that it won't context switch in the middle of an
operation.

A workaround I found is setting the quantum via thread-quantum-set! to an
absurdly large number, in hopes it won't ever reach it. And another
workaround is disabling interrupts for my compile unit, but this doesn't
help if an egg I use has interrupts enabled again. I was looking through
the source and found C_interrupts_enabled which doesn't seem to have any
method for setting it. Would this be the variable I should set? I'm worried
I might cause the garbage collector to break if I mess with it. I'm not
sure how it ties into all this.

Also an unrelated thingy, but the documentation for thread-quantum says it
returns a value in milleseconds, but it returns 10,000. And in the code it
seems this timer works by decrementing 10,000 by 1 each time it encounters
a C_check_for_interrupt which may not be every microsecond right?

Thanks!
Meowster

Reply via email to